Swift 擴充套件專題

2021-09-01 05:33:07 字數 2048 閱讀 1485

import foundation

struct point

struct size

class rect

}// 只能擴充套件五種東西

// 1. 方法

// 2. 計算型屬性

// 3. 便利的建構函式

// 4. 巢狀的列舉型別

// 5. 下標

// 不允許擴充套件成員變數和指定的建構函式

extension rect

convenience init(center: point, size: size)

func printhello()

}let rect = rect(center: point(x: 2, y: 2), size: size(width: 4, height: 4))

rect.point

rect.printhello()

import foundation

struct point

struct size

class rect

}extension rect

func pointatvertex(v: vertex) -> point

}// 擴充套件下標

subscript(index: int) -> point

}let rect = rect(point: point(x: 0, y: 0), size: size(width: 10, height: 10))

rect[2] // 10, 10

rect.pointatvertex(v: .rightbottom) // 10, 10

import uikit

extension int

var cube: int

func inrange(closedleft left: int, openedright right: int) -> bool

// 函式式程式設計思想,重複執行這麼多次

func repititions(task: () -> ())

}// 自定義乙個擴充套件的函式,用於指定的迴圈,並列印其平方

func mystride(to: int, by: int, task: (_ num: int) -> ())

}subscript(index: int) -> int

let circletime = len - index // 迴圈次數

var tail: int = 0

for _ in 0 ..< circletime

return tail

}func tobinary() -> int

return sum

}func isprime() -> bool

}return true}}

}let num = 2

num.cube

num.suqare

num.inrange(closedleft: 0, openedright: 8)

num.repititions

num.mystride(to: 10, by: 2)

let num2 = 434236

num2[0] // 4

num2[1] // 3

num2[2] // 4

num2[3] // 2

16.tobinary() // 10000

18.tobinary() // 10010

1.tobinary() // 1

1024.tobinary() // 10_000_000_000

1.isprime() // false

2.isprime() // true

3.isprime() // true

4.isprime() // false

17.isprime() // true

49.isprime() // false

101.isprime() // true

Swift 下標專題

import foundation struct vector3 set函式 set var v vector3 v 0 v 0 1import foundation class matrix subscript x int,y int double set 如果想和c語言中的二維陣列保持一致,即可...

swift 擴充套件

擴充套件就是為乙個已有類 結構體 列舉型別或者協議型別新增新功能。這包括在沒有許可權獲取原始源 的情況下擴充套件型別的能力。擴充套件和objectvie從中的分類類似。swift中的擴充套件可以 新增計算型別屬性和計算型型別屬性 定義例項方法和型別方法 提供新的構造器 定義下標 定義和使用新的巢狀型...

Swift 閉包專題

import foundation var arr 3,1,4,5,2 arr.sort by arr.sort by arr.sort by arr.sort by arr.sort by arr.sort by arrimport foundation var arr 3,1,4,5,2 當so...