一、变量常量Variable,Constant
字符串+字符不能直接使用加号,需要使用append
String.append(Character)
二、字符串String
三、字符Character
四、数组和字典
类型化的集合
数组中如果出现不同类型的内容,则是OC中的数组,不是swift的数组。
1.给数组规定类型
var names: String ( ) = [ "aa","dd","ff" ]
var arr: [Int] = [2,3]
var arr:Array
var arr = [Int]( )
2.增加数组
var shoppingList = [“松花蛋”,”豆浆"]
shoppingList.append( “啤酒")
shoppingList += [“枸杞”,”香油”,”五香粉"]
3.修改数组中的某个内容
shoppingList[0] = "6颗松花蛋"
4.批量修改数组中连续的内容
shoppingList[3...5] = ["⽑毛⾖豆", "⻩黄⽠瓜"]
5.增加字典的内容
var numberOfLegs = ["蚂蚁": 6, "⼩小蛇": 0, "⼩小狗": 4]
numberOfLegs["蜘蛛"] = 273
6.查询字典中的一个可能值
使用option可能值这个方法
7.给字典规定类型
var numberOfLegs: Dictionary
var numberOfLegs: [String: Int]= ["蚂蚁": 6, "⼩小蛇": 0, "⼩小狗": 4]
五、if语句
六、Switch语句
1.注意事项:
无需写break语句
但是必须写default语句(必须全面覆盖,Switch must be exhaustive)
2.常用的使用场景:
switch sender {
case button:
println("有人点了按钮")
case usernameTextField:
println("有人点了用户名输入框")
default:
println("有⼈点到了其它东西")
}
3.可以用逗号分割所有的可能性,无需给每一个可能性写一个case
switch legCount {
case 0:
println("蹭蹭蹭")
case 1, 3, 5, 7, 9, 11, 13:
println("颠颠颠⼉儿")
default:
println("⾛走⾛走⾛走")
}
4.区间匹配
switch legCount {
case 0:
println("蹭蹭蹭")
case 1...8 :
println("颠颠颠⼉儿")
default:
println("⾛走⾛走⾛走")
}
七、函数/方法Function
可以带参数,可以带多个参数。
参数可以带默认值。
可以带返回值。 ->
可以带多个返回值。(,)小括号,逗号分割多个返回值。
八、元组Tuples
合并在一起的数据结果
元组支持整体加可能
注意:(Int?, Int?) 和 (Int, Int)?的不同
1)(Int?, Int?) 元组肯定有值。元组里的第一个元素有值,第二个元素没有值;第一个没有值,第二个有值;第一个有值,第二个也有值;第一个没有值,第二个也没有值。
2)(Int, Int)?这个元组可能有值,这个元组也可能没有值。但是如果这个元组有值,那么元组里的两个元素是一定有值的。
九、闭包 Closure
无参数无返回值
闭包可作为参数
依附式闭包
十、类 Class
1.属性 properties
2.方法 methods
3.初始化 initializers
1. 属性 properties
(1)可以继承某个类,也可以不继承。
(2)储值属性
(3)算值属性
当前属性的值,可以由其他的值算出来。
get {
}
set {
}
newValue变量访问新值
(4)自动内存空间分配 Automatic Memory Allocation
(5)初始化
初始化没有返回值
init ( ) {
super.init ( )
}
(6)属性覆盖
(7)方法覆盖
(8)属性观察
willSet {
// 在这里可以通过 newValue 变量访问新值
}
didSet {
// 在这里可以通过 oldValue 变量访问旧值
}
2. 方法 Methods
3.初始化
十一、结构体 Struct
1.
struct 名字 {
}
2.
结构体内可以增加算值属性,在结构体内部增加方法,对现有数值属性进行属性观察
3.
结构体和类的区别:
1)结构体不可以继承;类可以继承。
2)结构体是值传递;类是引用值传递。
4.
mutating 试图修改结构体内部的元素值
十二、枚举 Enumerations
1.
enum 名字:类型 {
}
2. toRaw( ) 获取枚举内部的行值
3.行值:可以是Int整型类型,也可以是String字符串类型
4.关联值
5.初始化方法
6.算值属性
十三、扩展 Extensions
1.
extension 名字 {
}
十四、一个非泛型化的栈结构的结构体
A Non-Generic Stack Structure