he is coding

Swift语法速查

| Comments

基于swift3.0 如果有Java或者kotlin基础,可以更快的上手

变量声明

常量 let 变量 var

元组

1
let people = ("John",22)

数组

1
2
3
let stringArray = Array<String>()
let floatArray = [Float]()
let a = ["Zoe","Tom"]

字典

1
2
3
var dict1 = Dictionary<String,String>()

var dict2 = ["Zoe":78,"Tom":20]

for

1
2
3
4
for index in 0..<3
//区间[0,3)
for index in 0...3
//区间[0,3]

遍历数组

1
2
3
4
5
let students = ["Zoe","Tom"]
for student in students
{
    //...
}

遍历字典

1
2
3
4
5
let scores = ["Zoe":78,"Tom":20]
for (student,score) in scores
{
    //...
}

函数

格式

1
2
3
4
func 函数名(变量:类型) -> 返回值
{
    //...
}

参数支持默认值

函数的输入输出参数

1
2
3
4
5
6
7
func swap(number: inout Double)
{
    //...
}

var num = 1
swap(&num)//加上&符号

结构体

1
2
struct 名称 {
}

类是引用类型,而结构体和枚举都是值类型。值类型是一种当它被指定为常量或者变量,或者被传递给函数时会被拷贝的类型。这意味着你所创建的任何结构体和枚举实例,作为属性所包含的任意值类型,在代码传递中总是被拷贝的。

下标

结构体、类和枚举都可以定义下标,它可以作为访问集合、列表或序列成员元素的快捷方式。可以使用下标通过索引值来设置或检索值,而不需要为设置和检索分别使用实例方法。

1
2
3
4
5
6
7
8
9
struct MySubscript {
    var number:Int
    subscript(n:Int) -> Int {
        return number * n
    }
}

let subScript = MySubscript(number:4)
print(subScript[3])//output 12

init方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Car {
    var brand : String

    //类似无参数的构造方法
    init(){
        self.brand = "BMW"
    }

    init(brand:String){
        self.brand = brand
    }
}
let car1 = Car()
car1.brand = "Audi"
let car2 = Car("Benz")

get、set方法

参见kotlin

1
2
3
4
5
6
7
8
9
10
11
var age : Int
{
    get
    {
        return 23
    }
    set(newAge)
    {
        age = newAge
    }
}

willSet和didSet方法

设置前和设置后的回调

1
2
3
4
5
6
7
8
9
10
11
var level : Int = 1
{
    willSet
    {
        //设置前
    }
    didSet
    {
        //设置后
    }
}

静态方法

使用class关键字

1
2
3
4
5
6
7
class MathTool
{
    class func sum(a:Int, b:Int) -> Int
    {
        return a + b
    }
}

析构

1
2
3
deinit
{
}

其它

字符串输入

1
2
let age  = 23
print("我的年龄是\(age)")

Comments