Swift快速入门
按照传统,在学习一门新语言时,第一个程序应该是在屏幕上打印句子”Hello, world”。在Swift中,只需要下面一行代码。
println("Hello,world")
如果你用C或者OC写过代码,语法应该很熟悉。在Swift,这行代码是一个完整程序。你无需import(导入)一个类似于input/output的单独的库或string 句柄(string handling)。在全局作用域内的代码被用来作为程序入口点(the entry point for the program),所以你不需要一个main函数。在每一句的结尾,也不写分号。
作为开始,这个入门通过展示给你如何用Swift完成一系列不同编程任务来让你了解Swift。你如果有一些地方不太懂,不用担心,在快速入门中的所有知识都将会在书中详细描述。
注意:
为了获得最佳学习体验,在Xcode中作为playground学习本节。Playgrounds允许你编辑代码并且立刻看到结果。
简单的值(Simple Values)
用 let来声明常量,用var 来声明变量。在编译时,常量值不一定确定,但你必须只能赋值一次。对于一个不变值,如果你在不同地方使用,这意味着你可以用一个常量来命名它。
var myVariable = 42
myVariable = 50
let myConstant = 42
一个变量或者常量类型必须与你赋予的值的类型相同。但是,你不用问题显示写类型。当你创建一个常量或者变量时,给它赋值,让编译器来决定它的类型(类似于C++ 11中的auto关键字)。在上面的例子中,编译器知道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)
测试:
试着删除最后一行的String,会产生什么错误?
在string中包含value有更简单的方法:把值写在括号中,在括号之前写一个反斜杠”\”(backslash)。例如:
let apples = 3
let oranges = 5
let appleSummary = " I have \(apples) apples."
let fruitSummary = " I have \(apples + oranges) pieces of fruit. "
测试:
在一个string中用\( )来包括一个浮点计算,在问候中包含某人的名字
通过使用中括号“[ ]”(brackets)来创建数组(arrays)和字典(dictionaries),通过索引或者键(key)来访问元素。
var shoppingList = ["catfish", "water", “tulips","blue paint"]
shoppingList[1] = "bottle of water"
var occupations = [
"Malcolm":"Captain",
"Kaylee": "Mechanic",
]
occupation["Jayne"] = "Public Relations"
通过初始化语法(initializer syntax)来创建空的数级或字典。
let emptyArray = String[]()
let emptyDictionary = Dictionary<String, Float>( )
如果类型信息可以被推导出,可以写[ ]作为一个空数组,[:]作为一个空字典。---比如,当你为一个变量设置一个新的值或者传递一个参数给函数时。
shoppingList = [ ] //去购物买每一件物品