美文网首页
简单的swift

简单的swift

作者: 39beb26ddd35 | 来源:发表于2016-10-08 15:37 被阅读0次
  1. let/var2. 数组完整版let定义的数组,内容不可变
let arr: Array= Array()let arr = Array()let arr = [Int]()let arr = [1, 2, 3]

根据位置进行操作,元素按顺序排列arr[1]3. 字典

let dict: Dictionary= Dictionary()let dict = Dictionary()

let dict = [String:Int]()

let dict = ["key1":1, "key2":2]

根据Key(键)操作,元素没有顺序

dict["key2"]

  1. 循环

范围

for i in 0...9 {

}

for i in 0..<10 {

}

let arr = [1, 2, 3]

for i in arr {

}

let dict = ["key1":1, "key2":2]

for pair in dict {

print(pair.0, pair.1)

}

for (key, value) in dict {

print(key, value)

}

var i = 10

while i < 10 {

i += 1 //修改循环变量,使得循环能够终止

}

i = 10

repeat {

i += 1

} while i < 10


5. 条件判断

var i = 10

var j = 20

if i < j {

}

else if i < 10{

}

else {

}

/>, <, ==, !=, >=, <=

//&&(与), ||(或), !(非)

var a = false

var b = false

a && b: 只有当a和b都为真,表达式为真

a || b: 只有当a和b都为假,表达式为假

!a: 真变假,假变真

var i = 20

var j = 30

(i > 20) && (i < 10): 假

(i > 10) && (i < 20): 假

(i > 10) && (i < 30): 真

(i > 30) || (i < 30): 真

var b = false

!b

5. switch

var i = 1

switch i {

case 0..<10:

print("xxx")

fallthrough

case 1:

print("yyy")

default:

print("zzz")

}

6. enum

enum Weekday {

case Monday

case Thuesday

}

var w: Weekday = Weekday.Monday

w = .Thuesday

7. Optional

var i: Int? //必须使用!手动拆包

i = 123

var j = i! + 123

var k: Int! //自动拆包

k = 34

var m = k + 34

8. struct

struct Student {

var name: String

var age: Int

}

//值类型

var st01 = Student(name: "Lisi", age: 23)

var st02 = st01  //复制,变成两个

st01.name = "Zhangsan"

9. class

class Rectangle {

var width: Double!  //存储属性

var height: Double! {

willSet {

print("\(newValue) : \(height)")

}

didSet {

print("\(height)")

}

}

var area: Double {

get {

return width * height

}

set {

}

}

}

//类自动生成的构造函数,没有参数

//封装、继承、多态

class Animal {

func eat() {}

}

//单继承

class Dog: Animal {

func newFunc() {}

override func eat() {}

}

class Cat: Animal {

override func eat() {}

}

var ani: Animal

ani = Animal()

ani.eat()

ani = Dog()

ani.eat()

ani = Cat()

ani.eat()

10. protocol

//约定一个类型必须要具备某种功能

//约束

//可以有方法、计算属性

//不能有存储属性、不能实现方法

protocol BiteProtocol {

var a: Int { get set }

var b: Int { get }

func bite()

}

class Tiger : BiteProtocol {}

var bp: BiteProtocol =  Tiger()

11. extension

//1. 将类拆分成多个部分

//2. 给已有类型增加新功能

12. 运算符重载

func +(lhs: Tiger, rhs: Tiger) -> Tiger {

return ....

}

13. 闭包

//封装一段可执行代码

//匿名函数

let c1 = {

(a: Int) -> String in

return "\(a)"

}

//闭包需要在调用的时候才会执行

c1(23)

let c2: (Int) -> String = {

"\($0)"

}

c2(34)

func createClosure() -> (Int) -> String {

return { "\($0)" }

}

let c3 = createClosure()

c3(56)

createClosure()(56)

let v = {

(a: Int) -> String in

return "\(a)"

}(45)

14. lazy

//第一次使用时才加载

15. 泛型(Generics)

16. 元组

let a = (1, 3)

a.0

let b = (first: 23, second: 45)

b.first

17. Any/AnyObject

18. inout

19. defer

20. final

21. public/internal/private

22. @autoclosure

相关文章

网友评论

      本文标题:简单的swift

      本文链接:https://www.haomeiwen.com/subject/bpbuyttx.html