学习一门新语言的时候,大家都习惯于打印“Hello,world”开始。在Swift中只需要一行代码:
println("Hello, world")
如果你曾经写过C或者Objective-C代码,应该不会对Swift的语法陌生。Swift中上面这一行就是一个完整的程序。你不需要再为输入/输出或者字符串处理功能导入独立的库。程序以全局代码作为入口,因此不再需要main
函数了。同样,代码结尾的分号也不会再出现。
再这个简明教程中,你会学习到足够的知识来编写Swift程序。如果看完这个教程后还有什么不理解的,你可以在这本书中找到解释。
Note
最好的体验是在Xcode中将本章的内容作为一个Playground打开。Playground允许你实时预览Swift的运行结果。
简单赋值
在Swift中,使用let
定义一个常量,var
定义变量。常量的值不需要在编译时确定,但是只能赋值一次。这意味着你可以给一个常量赋值后,多次使用。
var myVariable = 42
myVariable = 50
let myConstant = 42
给常量或者变量赋值的时候,类型必须相同。但是并不需要每次都显式的写出它们的类型,因为编译器默认的确定了一些数据的类型。例如上面的代码中myVariable
是一个整数类型。
如果初始值没有提供足够的类型信息(或者没有初始值),可以在变量后增加类型说明符。
let implicitInteger = 70
let implicitDouble = 70.0
let explicitDouble: Double = 70
试验
创建一个常量,指定它的类型为Float
并赋值为4。
Swift中的数据类型之间不会进行隐式的转换。如果需要在不同数据类型之间进行转换的话,需要显式的创建一个目标类型的实例。
let label = "The width is "
let width = 94
let widthLabel = label + String(width)
试验
尝试删除最后一行的String
,看看会有什么错误。
实际上,还有一种更加简单的方法将值包含到字符串中:把需要包含的值写在圆括号()
中,然后在括号前添加反斜线\
就可以了,例如:
let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let fruitSummary = "I have \(apples + oranges) pieces of fruit."
试验
在字符串中使用\()
包含浮点数
Swift使用[]
创建和访问数组和字典。
var shoppingList = ["catfish", "water", "tulips", "blue paint"]
shoppingList[1] = "bottle of water"
var occupations = [
"Malcolm": "Captain",
"Kaylee": "Mechanic",
]
occupations["Jayne"] = "Public Relations"
也可以使用初始化语句创建空的数组和字典。
let emptyArray = String[]()
let emptyDictionary = Dictionary<String, Float>()
如果类型信息能够被推导出来,你可以直接将空数组写为[]
,空字典写为[:]
。例如给函数传递参的时候。
shoppingList = []