知识点1: let 代表变量(可以修改值),var代表常量(一但赋初始值之后不能被修改)。
比如最大登录数需要用let maximumNumberOfLoginAttempts = 10 来表示,
已经登录的次数需要用var currentLoginAttempt = 0 来表示
知识点2:类型注解
var welcomeMessage:String。其中冒号的含义就是 是...类型即 welcomeMessage是字符串类型
可以同时定义多个变量的类型,用逗号隔开,表示这几个都是同一类型的
var age,count:Int 表示定义age和count 都是Int类型的
知识点3:字符串插值
意思就是swift可以使用该方式将变量或者是常量插入到长字符串中,使用方式为:\(常量/变量)
print("The current value of friendlyWelcome is \(friendlyWelcome) ")
// 输出“The current value of friendlyWelcome is Bonjour!”
知识点4:类型安全和类型推断
类型安全 可以理解为:如果你的代码需要的是一个String,你就不可能会传一个Int进去,因为会报错提示类型不匹配。
类型推断 可以理解为:如果你没有进行类型注解,他会根据你赋的值自动推断出该类型是什么样的类型
知识点5:if
在判断条件时,if后边的语句必须要是bool值
let i =1
if i {
// 这个例子不会通过编译,会报错
}
然而,下面的例子是合法的:
let i =1
if i ==1
{
// 这个例子会编译成功
}
知识点6:元组
元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型
let http404Error = (404,"Not Found")
你可以通过下标访问元组的值,可以使用http404Error.0 获取到404 ,http404Error.1 获取到Not Found
所以元组作为函数的返回值,就非常有用,比一个返回值能包含更多的信息
知识点6:可选类型
C 和 Objective-C 中并没有可选类型这个概念
可选类型表示有2种可能:
1. 有值,可以解析该值并访问该值
2.没有值,是nil
定义一个可选类型,如果未设置默认值,则默认值是nil
var serverResponseCode :Int? = 404// serverResponseCode 包含一个可选的 Int 值404
serverResponseCode = nil // serverResponseCode 现在不包含值
注意:nil 可以赋值给可选类型,但是nil不能赋值给非可选类型的变量或者是常量
注意:
在oc中nil 是一个指向不存在对象的指针
在swift中nil不是一个指针,它是一个确定的值,用来表示值缺失!!!
知识点7:与可选值搭配的if语句 和强制解析,还有可选绑定if / guard
使用可选值的三种方式:if语句 和强制解析,还有可选绑定
1. 使用 if 判断不为nil 才进行使用(代码量大,不推荐使用)
if convertedNumber !=nil
{ print("convertedNumber has an integer value of\(convertedNumber!)." ) }
2. 如果能确定对象肯定不为空,可以使用!进行强行解包(不建议使用)
3.使用 if 可选绑定,如果有值,才使用(推荐使用)
if let constantName = someOptional
{ statements }
使用可选绑定的时候,还可以多个bool条件在一个if中,使用逗号隔开就可以了
if let firstNumber =Int("4") , let secondNumber = Int("42") , firstNumber < secondNumber && secondNumber <100
{ print("\(firstNumber)<\(secondNumber)< 100") }
4.使用guard 语句来进行
像 if 语句一样,guard 的执行取决于一个表达式的布尔值。我们可以使用 guard 语句来要求条件必须为真时,以执行 guard 语句后的代码。不同于 if 语句,一个 guard 语句总是有一个 else 从句,如果条件不为真则执行 else 从句中的代码
guard let location = person["location"] else {//条件为false 的时候执行else的代码
print("I hope the weather is nice near you.") return } //到这里才是guard语句的结束
print("I hope the weather is nice in\(location).") //条件为true 的时候执行guard之后的的代码
知识点8:错误处理、断言和先决条件 ?(待更新)