常量和变量的命名
你可以用任何字符作为常量和变量名字
let n = 3.14
let 你好 = "你好 swift"
let ???? = "swift good"
注意:常量与变量不能包含数学符号,箭头,保留的(或者非法的)Unicode码,
连线与制表符。也不能以数字开头,但是可以在常量与变量名的其它地方包含数字
类型推测
let meaningOf = 42
meaningOf被推测成int类型
let pi = 3.14159
pi被推测成double类型
当推测浮点数的类型时,Swift 总是会选择Double而不是Float。
如果表达式中同时出现了整数和浮点数,会被推测为Double类型:
let mun = 3+3.14159
数值类型转换
let two:UInt16 = 2;
let one:Uint8 = 1;
let onetwo = two+UInt16(one)
整数和浮点数转换
整数和浮点数的转换必须显示指定类型
let three = 3
let point = 0.259
let pi = Double(three)+point
let inter = Int(point)
类型别名:就是给现有类型定义一个名字。(typelias)
typelias audio = UInt16
var maxAmp = audio.min
布尔值
swift有两个布尔敞亮,true或者false
let one = true;
let two = flase;
if one
{
printIn("this is true!");
}
else
{
printIn("this is false!");
}
let i = 1
if i
{
////程序会报错
}
let i=1
if i==1
{
////程序不会报错
}
元组
把多个值组合成一个符合值,元组内的值可以是任意类型,
并不要求是相同类型。
let httpError = (404,"Not Found")
可以描述为一个类型为(int,string)的元组。
你可以将一个元组的内容分解(decompose)成单独的常量和变量,
然后你就可以正常使用它们了:
let (statusCode,statusMessage) = httpError
printIn("the status code is\(statusCode)")
printIn("the status message is\(statusMessage)")
如果你只需要一部分元组值,
分解的时候可以把要忽略的部分用下划线(_)标记:
let (statusCode,_) = httpError
printIn("ths status code is\(statusCode)")
此外,你还可以通过下标来访问元组中的单个元素,下标从零开始:
printIn("the status code is\(httpError.0)")
printIn("the status Message is\(httpError.1)")
你可以在定义元组的时候给单个元素命名:
let http200 = (statusCode:200,description:"OK")
printIn("the status code is\(http200.statusCode)")
printIn("the description is\(http200.description)")
当你确定可选包确实含值之后,
你可以在可选的名字后面加一个感叹号(!)来获取值。
这个惊叹号表示“我知道这个可选有值,请使用它。
”这被称为可选值的强制解析(forced unwrapping):
if converNum
{
printIn("\(Numner1) has an value\(converNum!)")
}
else
{
printIn("\(Number1) can not be conver to int")
}
注意:使用!来获取一个不存在的可选值会导致运行时错误。
使用!来强制解析值之前,一定要确定可选包含一个非nil的值。
可选绑定
使用可选绑定(optional binding)来判断可选是否包含值,
如果包含就把值赋给一个临时常量或者变量。
可选绑定可以用在if和while语句中来对可选的值进行判断并把值赋给一个
常量或者变量。
if let anNum = Number1.toInt()
{
printIn("\(Numner1) has an value\(anNum)")
}
else
{
printIn("\(Number1) can not be conver to int")
}
这段代码可以被理解为:
“如果Number1.toInt返回的可选Int包含一个值,
创建一个叫做anNum的新常量并将可选包含的值赋给它。”
如果转换成功,anNum常量可以在if语句的第一个分支中使用。
它已经被可选包含的值初始化过,所以不需要再使用!后缀来获取它的值。
在这个例子中,anNumber只被用来输出转换结果。