Swift 3.0(一)
一:let 和 var
let 声明的是一个常量, var 声明的是一个变量
二:简单数据类型
1.自推出数据类型
let implicitDouble = 70.0 //根据初始化时赋值的数据,推断出implicitDouble数据类型为Double
2.明确指定数据类型
let explicitDouble:Double = 70.0
3.强制数据类型转换, 数据类型转换必须是显式的
let label = "The width is"
let width = 40
let widthLable = label + String(width)
4.字符串里引用变量, \(变量)
let number = 42
let message1 = "I have \(number) dogs!"
let message2 = "I have \(number + 1) dogs!" //引用表达式number + 1
三:数组和字典(array,dictionary)
1.数组 ,形如 var myList = ["book", "pen", "pencil", "schoolbag"]
通过下标访问: print(myList[0]), myList[0] = "books"
添加(append):
var intArray = [1, 3, 5, 7]
intArray.append(9) //[1, 3, 5, 7, 9]
intArray.appendContentsOf([11, 13, 15]) //[1, 3, 5, 7, 9, 11, 13, 15]
同时修改多个元素:
intArray[3...5] = [2, 4] //[1, 3, 5, 2, 4, 13, 15]
2.字典, 形如 var myMap = ["Leon" : 27, "Lily" : 26, "Euler" : 32]
通过key访问, myMap["Leon"] = 28
如果访问的数据不存在则返回nil,let age = myMap["Julie"] //age 值为 nil
添加一个元素和修改一个元素是一样的, myMap["Eminem"] = 37
3.初始化空数据
//数组初始化
var array1 = [] //不指定数据类型
var array2 = [String] () //指定数据类型
//字典初始化
var map1 = [:] //不指定数据类型
var map2 = [String:Int]() //指定数据类型
4.遍历, for element in elements
例如:
4.1
var myArray = [1, 3, 5, 7, 9]
for myInt in myArray{
print(myInt)
}
4.2
var ages = ["Leon" : 27, "Lily" : 26, "Euler" : 32]
for (name, age) inages{
print("\(name) is \(age) years old now!")
}
五:switch
5.1
let age = 10
switch age{
case 1:
//do something
case 5...17:
//do something
case let decade where decade % 10 = 0:
//do something
default:
//do something
}
5.2 同时对两个变量值做判断
let username = "admin"
let passwordIsValid = true
switch (username, passwordIsValid) {
case ("admin", true): //用户名是“admin” 并且密码是有效
//do something
case ("guest", _): //只要用户名是 “admin" 不管密码如何
//do something
case (_, let isValid): //包括了不管用户名是什么但是密码有效或者无效这两种情况
//do something
}