swift学习文档(笔记)

2020-01-08 22:43:23刘景俊


println(jserme.0) //返回183cm

元组还原为独立的变量或者常量


let jserme = ("183cm",26,"76kg")
let (身高, 年龄, 体重) = jserme
println("身高是 (身高)")

也可以给每个值命名(这就像在JS里把数组搞成了对象了。。。)


let jserme = (身高:"183cm",年龄:26,体重:"76kg")
println("身高是 (jserme.身高)")

字符串

字符串字面量只能用""来定义,String本质上是Character的有序集合。


for char in "一言既出"{
 println(char)
}
 
/*
一
言
既
出
*/

字面量与判断是否为空


var 字符串 = "我是字符串"
var 空字符串 = ""
 
if 空字符串.isEmpty {
 println("这是一个空的字符串")
}
 
if 空字符串 == "" {
 println("这是一个空的字符串")
}

字符串实例有两个方法hasPrefix与hasSuffix,如:


var 成语数组 = [
 "一言既出",
 "一触即发",
 "一呼百应",
 "一槌定音",
 "一无所有",
 "一生一世",
 "一见钟情"
]
 
var count = 0
for 成语 in 成语数组 {
 if(成语.hasPrefix("一")){
  count++
 }
}
 
println(count) //输出7

与js一样,string也是传值引用,下面的两个变量的修改不会影响到彼此


var 一串 = "我是字符串一"
var 二串 = 一串
 
二串 = "我是字符串二"
 
println("字符串一:(一串), 字符串二:(二串)")

区间运算符

闭区间使用a...b,从a到b,包含a与b,半区间a..b,从a到b,不包含b,例如:


var 成语数组 = [
 "一言既出",
 "一触即发",
 "一呼百应"
]
 
for i in 0..成语数组.count {
 println("第(i)个成语是:(成语数组[i])")
}
//这里如何使用...会报错,因为成语数组[3]是没有值的

两种集合,array 和 dictionaries

相对于js对数组和对象成员松散的要求,swift要求数组和dictionaries里成员类型必须一致


var 购物清单: String[] = ["鸡蛋", "牛奶"]
//也可以是下面的这样
//var 购物清单 = ["鸡蛋", "牛奶"]