按照国际惯例,学习一门新语言写的第一个程序都是在屏幕上输出一句 “Hello, world!” 。在Swift里,一行代码就搞定了:
println("Hello, world!")
如果你以前写过C或者Objective-C的代码,这个语法你肯定看着很眼熟——在Swift里,这行代码就已经是一个完整的程序了。你不需要单独导入用于像输入/输出或者字符串处理功能的类库。写在全局范围内的代码就用来作为程序的入口点,所以不需要main函数。也不需要在每一行语句后面加上分号。
本系列教程通过完成一系列编程实例来提供给你足够的信息,让你能用Swift开始写代码。如果有些东西看不懂,别担心——本教程介绍的所有内容都会在其它文章里详细解释。
注意
为了最佳体验,你可以在Xcode里新建一个playground,把本教程用到的代码敲到playground里。playground可以在你写完代码以后马上看到输出的结果
定义常量使用 let ,定义变量,使用var。常量的值在编译时不需要知道,但必须只能赋一次值。也就是说可以用常量来为一个值进行命名,一次赋值多次使用。
var myVariable = 42
myVariable = 50
let myConstant = 42
常量或变量都必须与其指定的值具有相同的类型。不过,你不必显式写出类型来。在定义常量或变量的时候提供一个值,编译器就会自己推测它的类型。上面的例子,编译器推测myVariable是一个整型,因为它的初始值是个整型。
如果初始值没有提供足够的信息(或者没有初始值),那就在变量名后面写上冒号,再加上类型名。
let implicitInteger = 70
let implicitDouble = 70.0
let explicitDouble: Double = 70
试一试
定义一个常量,显式指定其类型为Float,值为4
值是不会隐式地转换为其它类型的。如果需要将值转换为不同类型,需显示创建目标类型的实例。
let label = "The width is "
let width = 94
let widthLabel = label + String(width)
试一试
试着把最后一行字符串转换去掉,看看会有什么错误?
在字符串里加入值还有个更简单的方法:将值写在括号里,再在括号前加上反斜杠()。如:
let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let fruitSummary = "I have \(apples + oranges) pieces of fruit."
试一试
用 \() 在字符串里加入浮点数运算,再在问候语里加入某人的名字试试
要创建数组和字典,使用方括号([]),要访问他们的元素,就在方括号里写索引活着键名。
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 = [String: Float]()
如果类型可以推断出来,可以就写[]表示空数组,[:]表示空字典——例如,当为变量设置新值或传参数到函数的时候。
shoppingList = []
occupations = [:]