# 7.15

### 变量与常量

``````var bianliang = 123

bianliang = 234
``````

``````let changliang = 123
``````

``````iVal = Int(conVal)
iVal = "\(conVal)"
``````

### 数据类型与集合类型

1. 值类型

struct Animal {var name: String
var weight: Float}
var ani1 = Animal(name: "Cat", weight: 12)
var ani2 = ani1
ani1.name = "kitty"

# 修改了ani1.name,但是ani2.name不会变化

1. 引用类型

class Animal {var name: String = "Cat"
var weight: Float = 12}
var ani1 = Animal()
var ani2 = ani1
ani1.name = "kitty"

# 虽然修改了ani1.name，但是ani2.name也会变

#### 数组

``````var shuzu1 = [1, 2, 3, 4]

var shuzu2: [Int] = [1, 2, 3, 4]

var shuzu3 = [Int]_()

var shuzu4 = Array<Int>()

var shuzu5: Array<Int> = [1, 2, 3, 4]
``````

var定义的数据可以修改内容，let定义的数组不可以修改内容

``````shuzu1.count                     #获取元素个数

shuzu1.append(5)                 #在末尾添加元素

shuzu1.append(contentsOf: [6, 7])

shuzu1.insert(8, at: 7)          #在任意位置插入元素

shuzu1.insert(contentsOf: [9, 10], at: 0)

shuzu1.remove(at: 0)             #移除元素

shuzu1.first                     #数组的首

shuzu1.last                      #数组的尾

shuzu1.removeLast()

shuzu1.removeFirst()

shuzu1.removeAll()               #移除数组内的所有元素
``````

#### 字典

``````var zidian1 = ["key1":12, "key2":45]

var zidian2: [String:Int] = ["key1":12]

var zidian3 = [String:Int]()

var zidian4: Dictionary<String, Int>

var zidian5 = Dictionary<String, Int>()
``````

``````zidian1["key1"] = 56 #修改key1的值

zidian1["key3"] = 78 #若是没有key3，创建赋值

zidian.removeValue(forKey: "key1")

zidian.renmoveall
``````