var friendlyWelcome ="Hello!"
friendlyWelcome ="Bonjour!"print(friendlyWelcome)// 输出 "Bonjour!"print("The current value of friendlyWelcome is \(friendlyWelcome)")// 输出 "The current value of friendlyWelcome is Bonjour!"
3、Swift 中的注释和 C 的注释基本相同。单行注释用两个斜杠开头( // );多行的注释以一个斜杠加一个星号开头( /* ),以一个星号加斜杠结尾( */ )。
let http404Error =(404,"Not Found")// http404Error is of type (Int, String), and equals (404, "Not Found")
print("The status code is \(http404Error.0)")// prints "The status code is 404"print("The status message is \(http404Error.1)")// prints "The status message is Not Found"
10、你可以通过给可选变量赋值一个 nil 来将之设置为没有值:
var serverResponseCode:Int?=404// serverResponseCode contains an actual Int value of 404
serverResponseCode =nil// serverResponseCode now contains no value
if convertedNumber !=nil{print("convertedNumber has an integer value of \(convertedNumber!).")}// prints "convertedNumber has an integer value of 123."
可选项绑定:可以使用可选项绑定来判断可选项是否包含值,如果包含就把值赋给一个临时的常量或者变量。可选绑定可以与 if 和 while 的语句使用来检查可选项内部的值,并赋值给一个变量或常量。
在 if 语句中,这样书写可选绑定:
iflet constantName = someOptional {
statements
}
你可以像上面这样使用可选绑定而不是强制展开来重写 possibleNumber 这个例子:
iflet actualNumber =Int(possibleNumber){print("\'\(possibleNumber)\' has an integer value of \(actualNumber)")}else{print("\'\(possibleNumber)\' could not be converted to an integer")}// prints "'123' has an integer value of 123"
代码可以读作:“如果 Int(possibleNumber) 返回的可选 Int 包含一个值,将这个可选项中的值赋予一个叫做 actualNumber 的新常量。”如果转换成功,常量 actualNumber 就可以用在 if 语句的第一个分支中,他早已被可选内部的值进行了初始化,所以这时就没有必要用 ! 后缀来获取里边的值。在这个栗子中 actualNumber 被用来输出转换后的值。常量和变量都可以使用可选项绑定,如果你想操作 if 语句中第一个分支的 actualNumber 的值,你可以写 if var actualNumber 来代替,可选项内部包含的值就会被设置为一个变量而不是常量。你可以在同一个 if 语句中包含多可选项绑定,用逗号分隔即可。如果任一可选绑定结果是 nil 或者布尔值为 false ,那么整个 if 判断会被看作 false 。下面的两个 if 语句是等价的:
如上所述,可选项明确了常量或者变量可以“没有值”。可选项可以通过 if 语句来判断是否有值,如果有值的话可以通过可选项绑定来获取里边的值。有时在一些程序结构中可选项一旦被设定值之后,就会一直拥有值。在这种情况下,就可以去掉检查的需求,也不必每次访问的时候都进行展开,因为它可以安全的确认每次访问的时候都有一个值。这种类型的可选项被定义为隐式展开可选项。通过在声明的类型后边添加一个叹号( String! )而非问号( String? ) 来书写隐式展开可选项。与在使用可选项时在名称后加一个叹号不同的是,声明的时候要把叹号放在类型的后面。在可选项被定义的时候就能立即确认其中有值的情况下,隐式展开可选项非常有用。如同无主引用和隐式展开的可选属性中描述的那样,隐式展开可选项主要被用在 Swift 类的初始化过程中。隐式展开可选项是后台场景中通用的可选项,但是同样可以像非可选值那样来使用,每次访问的时候都不需要展开。下面的栗子展示了在访问被明确为 String 的可选项展开值时,可选字符串和隐式展开可选字符串的行为区别:
let possibleString:String?="An optional string."let forcedString:String= possibleString!// requires an exclamation marklet assumedString:String!="An implicitly unwrapped optional string."let implicitString:String= assumedString // no need for an exclamation mark
Swift 编程语言1、关键字 let 来声明常量,使用关键字 var 来声明变量2、你可以在声明一个变量或常量的时候提供类型标注,来明确变量或常量能够储存值的类型。添加类型标注的方法是在变量或常量的名字后边加一个冒号,再跟一个空格,最后加上要使用的类型名称。var friendlyWelcome = "Hello!"friendlyWelcome = "Bonjour!"print(friendlyWelcome)// 输出 "Bonjour!"print("The current valu