Xcode Version 8.1 (8B62)
直接贴代码及注释
/*********常量与变量的声明**********/
let a = 5 //定义常量 能使用常量尽量使用常量
//a = 6 //常量不能修改
var b = 5
b = 6
//swift中所有的基本类型都是值类型,包括string类型
var c = b
c
b = 88
c
//swift中的类都是大写的
//下面的常量声明是显式指定类型
let i: Float = 5.5 //默认编译器推断的是double
//常用的类型string,character,bool,float,double,int
let flag = true
let str = "hello world"
let ch: Character = "a"
//元祖(tuple)
//元祖声明的语法就是一个括号,逗号分隔用来存放多个数据
let t = (404,"not found")
let t1 = (1,1,1,2,3,4)
//通过下标来访问元祖
t.0
t.1
let t2 = (name: "dq" ,age: 18)//不需要给每个成员都取名字
t2.name
t2.age
let t3: (name: String,age: Float) = ("cj2",46.6)
t3.age
t3.name
let t4: (String,Float) = ("aaaa",4)
t4.0
t4.1
let t5:(name: String, Float) = ("bbb",5)
t5.1
let t6:(String,Float) = (name: "xxxx",age: 55)
t6.0
t6.1
//t6.name //由于在声明的时候没有指定名字,所以不能访问
//下面的写法(声明的同时就赋值)不行,
//let t8: (name: String = "aaa",age: Float = 222)
//string类型
let str1: String
str1 = "aaaa"
var str2 = "bbbb"
str2 = "cccc"
str2 += "dddd"
str2 = "abcdefg"
str2.characters.count //取字符长度
str2.startIndex
str2.endIndex
str2[str2.startIndex]
//str2[str2.startIndex + 1] str2.startIndex返回的并不是Int类型,不能进行加法等运算
str2.index(after: str2.startIndex)
str2[str2.index(after: str2.startIndex)]
str2.index(before: str2.endIndex)
str2.index(str2.startIndex, offsetBy: 3)
str2[str2.index(str2.startIndex, offsetBy: 3)]
str2.index(str2.endIndex, offsetBy: -3)
str2.substring(to: str2.index(str2.startIndex, offsetBy: 3))//截取前三个字符
str2.substring(from: str2.index(str2.startIndex, offsetBy: 3))//从第三个之后开始,不包括第三个字符,即从下标为3的字符开始,一直到结尾
str2.uppercased()//将字母转换成大写
str2.lowercased()//将字母转换成小写
str2.capitalized//首字母大写
str2.hasPrefix("abc") //是否有前缀(prefix)
str2.hasSuffix("abc") //是否有后缀
str2.hasSuffix("g")
str2.hasSuffix("fg")
str2.contains("de") // 是否包含
i
let str3 = "abc \(i * 5)"
//swift操作符基本与c#,java一样
let f = true
a
if f {
print("true")
}
if (a >= 5 ) {
print("da yu dengyu 5")
} else if( a > 3) {
} else {
}
let age = 35
switch age {
case 25:
print("25sui")
case 35:
print("chenjun")
default:
print("fei 25")
}
Int.min
Int.max
switch age {
case 1...60://表示区间[1,60]
print("suo you de zhengshu ")
default:
print("1...60zhiwai")
}
switch age {
case 1,20,35,60:
print("suo you de zhengshu ")
default:
print("1...60zhiwai")
}
let arr = [1,2,3,4,8,30,5,10]
for a in arr {
print(a)
}
for a in 0...3 {
print(arr[a])
}
var max = arr[0]
for item in arr {
if item % 2 != 0 && item > max {
max = item
}
}
max
var n = 3
while n < 10 {
n += 1
print(n)
}
n = 3
repeat {
print("xxx")
n += 1
} while n < 10
/******** 集合 Array,Dictionary,Set ***/
let arr2: Array<Int> = Array<Int>()
var arr3 = [1,2,3,3]
let arr4: Array<Int> = []
arr3[0]
arr3.append(5)
arr3.append(contentsOf: [6,7,8])//添加数组元素
arr3
arr3 += [10,11]//添加数组元素
arr3
//arr3.insert(contentsOf: <#T##Collection#>, at: <#T##Int#>)
//arr3.remove(at: <#T##Int#>)
var dic = ["a":"abc","b":"def"]
dic["a"]//有则查找
dic["c"] = "gig"//无则添加
dic.count
for k in dic.keys {
print(k)
}
for v in dic.values {
print(v)
}
for (k,v) in dic {
print ("key is \(k) value is \(v)")
}
var s: Set<Int> = [1,2,3,4,4]
s.count
s.insert(2)
s.count
var s1: Set<Int> = [2,3,6,7]
let r1 = s.intersection(s1)// 交集
s.union(s1)//并集