基础入门
语言特性
Swift 可以说是一门较新的语言,苹果于2014年[WWDC]苹果开发者大会发布。
从Swift 2、Swift 3、到Swift 4,一直处于ABI不稳定阶段,有人戏说是每发布一个大的版本,相当于重新学一门新的语言。
直到2019年, Swift 5.0 的发布,ABI终于稳定,目前最新的稳定版本是5.2.5, 开发版本为5.3 。
由于ABI的稳定,现在是学习Swift的最好时机。
由于是一门较新的语言,因此Swift很大程度的吸收了其它优秀编程的特性和编程模式,根据官方的介绍,编写Swift代码的最明显的方式是:
- 安全、严格
- 快速
- 富有表现力。
在后续的学习中,我们会看到很多富有表现力的语法,这会让Swift语法更通俗易懂,但同时由于Objective-C的历史包袱,以及太过于富有变现力,也会有大量类似语法糖的东西,对初学者容易造成一定的困惑。
常量和变量
Swift中常量和变量必须在使用前被声明。
使用关键字 let 来声明常量(只能被赋值一次),使用关键字 var来声明变量。例如:
//Swift中常量和变量必须在使用前被声明。
//print(a)
//error: use of unresolved identifier ‘a’
//var a:Int
// swift中可以不使用 ‘;’
//变量 var str = “Hello, playground”
//常量 let sex = “男”
// 如果放在一行,应该添加分号
let name = “Jack”;
var age = 18
// 常量和变量的声明可以显示指定类型,用’:’隔开;也可以隐式不指定类型。
var personA:String = “Jim”
//不指定类型Swift会自动推断
var personB = “Bill”
//如果初始化时没有赋值,必须指定类型,用’:’隔开
let personC:String personC = “Jack Ma”
以下语言特性可能和其它编程语言不同,需注意:
/ 常量的值不要求在编译时期确定,但使用之前必须要赋值一次 /
func retAge() -> Int {
return 18
}
let age2: Int age2 = retAge()
print(age2)
// 18
/ 在Swift中标识符(比如常量名、变量名、函数名)几乎可以使用任何字符 只要不能以数字开头即可 只要不包含空白字符、制表符、箭头等特殊字符即可 /
let 姓名 = “Jack Ma”
var ? = “一杯啤酒”
print(“(姓名) 喝了 (?)”)
//输出:Jack Ma 喝了 一杯啤酒