swift学习1

1 篇文章 0 订阅

swift学习:基础

常量和变量:
常量的值一旦设定就不能改,变量的值可改。
常量和变量必须在使用前声明,用let来声明常量,用var来声明变量。

let maximumNumberOfLoginAttempts = 10
var currentLoginAttempt = 0


类型标注:
表示常量和变量存储的值的类型,如果不设定,那么就会根据之来进行类型推断。

var welcomeMessage: String

常量和变量的命名:
常量和变量的命名不能包含数字符号,箭头,保留字,连线和制表符,不能以数字开头,命名不能重复,不能改变其存储的值的类型,不能将常量好变量进行互换。

let π = 3.14159
var friendlyWelcome = "Hello!"

输出常量和变量:
println是一个用来输出的全局函数,输出的内容会在最后换行。

println(friendlyWelcome)
// 输出 "Hello!"

Swift 用字符串插值(string interpolation)的方式把常量名或者变量名当做占位符加入到长字符串中,Swift 会用当前常量或变量的值替换这些占位符。将常量或变量名放入圆括号中,并在开括号前使用反斜杠将其转义:
println("The current value of friendlyWelcome is \(friendlyWelcome)")
// 输出 "The current value of friendlyWelcome is Bonjour!


数值型类型转换:
要将一种数字类型转换成另一种,你要用当前值来初始化一个期望类型的新数字,这个数字的类型就是你的目标类型。

整数转换:

let twoThousand: UInt16 = 2_000
let one: UInt8 = 1
let twoThousandAndOne = twoThousand + UInt16(one)

SomeType(ofInitialValue)是调用 Swift 构造器并传入一个初始值的默认方法。你并不能传入任意类型的值,只能传入UInt16内部有对应构造器的值。不过你可以扩展现有的类型来让它可以接收其他类型的值(包括自定义类型)

整数和浮点数转换:
整数和浮点数的转换必须显式指定类型。

let three = 3
let pointOneFourOneFiveNine = 0.14159
let pi = Double(three) + pointOneFourOneFiveNine
// pi 等于 3.14159,所以被推测为 Double 类型

浮点数到整数的反向转换同样行,整数类型可以用Double或者Float类型来初始化:

let integerPi = Int(pi)
// integerPi 等于 3,所以被推测为 Int 类型

当用这种方式来初始化一个新的整数值时,浮点值会被截断。也就是说4.75会变成4,-3.9会变成-3。


布尔值:
Swift有两个布尔常量,true和false

let orangesAreOrange = true
let turnipsAreDelicious = false

当你编写条件语句比如if语句的时候,布尔值非常有用:

if turnipsAreDelicious {
    println("Mmm, tasty turnips!")
} else {
    println("Eww, turnips are horrible.")
}
// 输出 "Eww, turnips are horrible."

元组:
元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型。

let http404Error = (404, "Not Found")
// http404Error 的类型是 (Int, String),值是 (404, "Not Found")

可选类型:
在类型后加个“?”表示可选,表示可以有值,也可以没有值。
隐式解析可选类型:
“!”取值的时候一定要有值,不然运行时会报错。

let possibleString: String? = "An optional string."
println(possibleString!) // 需要惊叹号来获取值
// 输出 "An optional string."

两者的区别:

let assumedString: String! = "An implicitly unwrapped optional string."
println(assumedString)  // 不需要感叹号
// 输出 "An implicitly unwrapped optional string."

断言:
可选类型可以让你判断值是否存在,你可以在代码中优雅地处理值缺失的情况。然而,在某些情况下,如果值缺失或者值并不满足特定的条件,你的代码可能没办法继续执行。这时,你可以在你的代码中触发一个断言(assertion)来结束代码运行并通过调试来找到值缺失的原因。
你可以使用全局assert函数来写一个断言。向assert函数传入一个结果为true或者false的表达式以及一条信息,当表达式为false的时候这条信息会被显示:

let age = -3
assert(age >= 0, "A person's age cannot be less than zero")
// 因为 age < 0,所以断言会触发

何时使用断言

当条件可能为假时使用断言,但是最终一定要保证条件为真,这样你的代码才能继续运行。断言的适用情景:

  1. 整数类型的下标索引被传入一个自定义下标脚本实现,但是下标索引值可能太小或者太大。
  2. 需要给函数传入一个值,但是非法的值可能导致函数不能正常执行。
  3. 一个可选值现在是nil,但是后面的代码运行需要一个非nil值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值