学习一门新的语言,首先应该从该门语言的基础语法入手,掌握基本语法的使用规则,先保证能写简单的逻辑,能阅读简单的代码。之后,通过完成几个简单的需求,实际写代码感受并强化一下相关语法。并且,在具体写代码的过程中强化语法的一些细节以及相关的原理性的知识。本系列文章会尽量避免事无巨细的介绍各种语法或知识,而是以让大家更快地上手Swift为目标。至于其中用的比较少的细节,会放在最后介绍或者不介绍。我相信如果对Swift整体有了认识,具体的用的比较少的细节,等真用到了也能找到足够多的相关资料。
Swift是一门类型安全的语言。Swift帮助你明确代码可以操作的类型。如果你的变量预期得到一个String,类型会安全地组织以免你不小心传入Int。在开发过程中,这个限制能帮助你在开发过程中更早地发现并修复错误。当然,Swift的安全特性不止体现于此。
1、声明常量和变量
常量顾名思义一旦设置好值便不能再被更改。变量可以在任何时候被设置为不同的值。
使用关键字let来声明常量,使用关键字var来声明变量。(ps:是不是看到了js或python的影子)
let maxNumber = 10
var currentNumber = 0
这段代码读作:声明一个叫做maxNumber的常量,并赋值为10,声明一个叫做currentNumber的变量,并设置初始值0。
ps: Swift 并不要求在每一句代码结尾写分号
2、类型标注
你可以通过添加类型标注为每个变量或常量标明能够储存值的类型。添加类型标注的方法是在变量或者常量的名字后加一个冒号,再跟一个空格,最后加上要使用的类型的名称。
例如:
var welcomeMessage: String
声明一个叫做welcomeMessage的变量,它的类型是String。
var red, green, blue: Double
声明red, green, blue三个变量,三个变量的类型均为Double。
常量或者变量必须拥有和你赋给它们的值相同的类型。不过,你并不需要总是显示地写出类型。在声明一个常量或者变量的时候直接给它们赋值就可以让编译器推断它们的类型。比如varmyVariable =42 编译器就会推断myVariable是一个整型,因为它的初始值是一个整型。
3、输出常量和变量
var welcomeMessage: String = "helloworld!"
print(welcomeMessage)
print("The current value ofwelcomeMessage is \(welcomeMessage)")
结果为:
hello world!
The current value of welcomeMessage ishello world!
Swift使用字符串插值的方式来把常量名或者变量名当做占位符加入到更长的字符串中,然后让Swift用常量或变量的当前值替换这些占位符。
let apples= 3
let appleSummary= "I
have \(apples)apples."
在声明String变量时也可以采用同样的方式
4、基本数据类型
Swift为所有C和Objective-C的类型提供了自己的版本,包括整型值的Int,浮点数的Double和Float,布尔量值的Bool,字符串的String,数组Array,Set和字典Dictionary
Swift版本的基本数据类型包括Int、UInt、Float、Double等
let meaningOfLife = 42 被推断为Int
let pi = 3.14159 被推断为Double
5、String
var welcomeMessage: String = "hello world!" //定义String
常用API
isEmpty 判断String是否为空
count 返回String长度
append 在String末尾添加字符
uppercased / lowercased 将String变为大/小写
hasPrefix /hasSuffix 是否有相应的前/后缀
contains 是否包含相应的字符
OC中用 NSMutableString和NSString分别表示可变字符串和不可变字符串。Swift与此不同,在定义String时,var代表可变,let代表不可变。(Array与Dictionary也是如此)
6、Array
var shoppingList =["catfish","water","tulips","blue paint"] //初始化Array
shoppingList[1]= "bottleof water" //修改Array中某一项的值
var emptyArray =[String]() //初始化空Array
letoddNumbers = [1, 3, 5, 7, 9, 11, 13, 15] //An array of 'Int' elements
与OC不同,Array中的元素可以是基本数据类型(Dictionary也是如此)。
常用API
isEmpty 判断数组是否为空
count 返回数组长度
first 返回首个元素(如果数组为空,返回nil)
last 返回最后一个元素(如果数组为空,返回nil)
append 在数组末尾添加一个元素
insert 在固定下标位置插入某一元素
remove 移除某一元素
7、Dictionary
var occupations= [
"Malcolm":"Captain",
"Kaylee":"Mechanic",
] // 初始化字典
occupations["Jayne"]= "PublicRelations" // 修改字典中某项值
let emptyDictionary= [String:Float]() // 初始化空字典
常用API
isEmpty 判断字典是否为空
count 返回字典长度
keys 返回字典所有的key
values 返回字典所有的value