翻译能力有限,如有不对的地方,还请见谅!希望对Swift的学习者有所帮助,使用的编写工具:JQNote InNote(iPhone)
常量和变量关联一个名称(比如:maximumNumberOfLoginAttempts 和 welcomeMessage)和一个特殊类型的值(比如:数字10和字符串“Hello”)。一个常量一旦被赋值后就不能再改变,一个变量可以再次被赋予不同的值。
声明常量和变量
常量和变量在使用前必须要声明。你可以使用关键字let来声明一个常量,使用关键字var来声明一个变量。下面是一个如何声明变量和常量的例子:
letmaximumNumberOfLoginAttempts= 10
varcurrentLoginAttempt= 0
这段代码表示:“声明了一个新的常量maximumNumberOfLoginAttempts,并且给它赋值10. 然后声明了一个新的变量currentLoginAttempt,并且设置了一个初始化的值0.” 在这个例子中,最大的登录次数被声明为一个常量,因为最大值不会再改变。当前登录的次数被声明为一个变量,是因为这个值在每次尝试登录失败后必须增加。你可以在一行声明多个变量或者常量,用逗号隔开:
varx=0.0,y=0.0,z=0.0
【注意】如果代码中一个存储值不会发生改变,那么总是使用关键字let声明它为常量,如果存储值需要被改变,那么就使用变量。
类型注释
当你声明一个常量或者变量时,为了该常量或者变量可以存储值的类型更清晰明确,你可以这样添加一个类型注释:在变量或者常量名称后添加一个冒号,空格,然后再加上类型名称。下面的例子为一个变量welcomeMessage提供了一个类型注释,表示该变量可以存储String类型的值:
varwelcomeMessage:String
这段代码表示:“声明了一个String类型的变量welcomeMessage”,这意味着“可以存储任何String类型的值”。可以把它看作是可以存储的“数据的类型”(或者“类似的数据类型”)。现在变量welcomeMessage可以被设置任何字符串值:welcomeMessage=“Hello”。你可以在一行定义多个相同类型的变量,用逗号隔开,只在最后一个变量名称后添加一个单独的类型注释:
varred,green,blue:Double
【注意】很少需要在实际中编写类型注释,如果你在定义一个常量或者变量的时候给它设置了初始化值,Swift总是会自动推断出该变量或常量的类型。在后续的类型安全和类型推断中会有介绍。在上面的例子中,welcomeMessage没有设置初始化值,因此它的类型就是特别声明的类型注释String,而不是根据初始化值推断的类型。
命名常量和变量
常量和变量的名称可以包含几乎任何字符,包括Unicode字符:
letπ=3.14159
let你好="你好世界"
常量和变量名不能包含空格字符、数学符号、箭头、私有(或无效)Unicode代码,或者行-和画的字符。也不能以数字开头,尽管数字可能被包括在名字的其他地方。一旦你声明了一个确定类型的常量或者变量,就不能再次使用相同的名称来声明它,或者存储一个不同类型的值给它。也不能把一个常量变为为变量,或者把一个变量变为常量。
【注意】如果你使用了与Swift关键字一样的名称来命名一个常量或者变量,用引号(`)把该关键字括起来。然而,尽量避免这样使用,除非你别无选择。
打印常量和变量
你可以打印一个常量或者变量的值,通过print(_:separator:terminator:)方法:
print(friendlyWelcome)
print(_:separator:terminator:)是一个全局函数,可以打印一个或多个值到合适的输出端。例如,在Xode中,print(_:separator:terminator:)函数打印它的输出到“console”面板中。separator和terminator参数有默认值,因此调用的时候,可以忽略它们。缺省的,该函数通过添加换行符来终止一行的打印,如果没有换行符,传一个空字符串给terminator参数,例如:print(someValue, terminator: “”)。
Swift使用字符串插值来包含一个变量或者常量名称作为一个长字符串中的占位符,提示swift用该常量或者变量的值来替换它。如下:
varfriendlyWelcome="Bonjour!"
print("The current value of friendlyWelcome is \(friendlyWelcome)")