使用swift开发项目已经有一年多了,这一年多的时间里,苹果多次升级更改swift语法。这也直接导致每次更新xcode后,项目代码做大量的语法更改。哎,也不知道苦逼的swift什么时候可以稳定下来,swift最奇葩的地方在于更新版本不兼容低版本的一些语法。欧啦,抱怨完了,开始我们的swift之旅吧。 在swift的世界里所有的数据类型都已两种形式出现,要么是变量(var),要么是常量(let),与oc相比简易了很多。
1、定义变量和常量
var intVariable: int = 42
intVariable = 90
let floatValue: CGFloat = 32
swift 的变量具有类型安全的特性,所有给变量赋的值类型必须和变量类型匹配。否则编译报错。
intVariable = 9.9 //编译报错
定义变量和常量时如果等号右边能倒推出数据类型,那么可以不指定变量类型。
var implicationInt = 2 // implicationType int 类型
var implicationDouble = 2.2 // Double 类型(小数被默认为Double)
2、不同类型赋值
不同类型之间赋值时,不会隐含的转换为目标类型。所以得明确的指定成目标类型。
implicationInt = Int(implicationDouble) //implicationDouble不能超过Int的最大值
3、数组、字典
初始化数组、字典
var books = ["语文","数学"]
var dic = ["bookname":"语文","price":"213"]
创建空数组、字典
var books = [String]()
var books = Array<String>()
var dic = [String:String]()
var dic = Dictionary<String,String>()
4、控制流 for 循环、while循环
for循环
let individualscores = [75,43,103,87,12]
var teamscore = 0
for score in individualscores {
if score > 50 {
teamscore += 3
} else {
teamscore += 1
}
}
print(teamscore)
while循环和oc稍有改动,把 do{}while(condition) 该为 repeat{}while condition
var n = 2
while n < 100 {
n = n * 2
}
print(n)
var m = 2
repeat {
m = m * 2
} while m < 100
print(m)
5、元祖 Tuples
有的时候我们需要一个函数返回两个值,在oc中是不能实现的。在swift中引入了一种数据类型: 元祖(Tuples)。元祖是由多个值构成的一个值,其中的每一个值可以为任何数据类型。
let error = (404,"page not found")
let (status,string) = error // status 为404, string 为“page not found”
//如果只想取其中的一个值,
let (status,_) = error
这篇文章不是要讲swift数据类型以及其用法,只是让大家对swift大概有个了解,在以后的章节里会详细讲一下数据类型的用法。