91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用swift類方法

發布時間:2021-10-13 14:40:38 來源:億速云 閱讀:142 作者:iii 欄目:編程語言

本篇內容介紹了“如何使用swift類方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

類的實例方法

//類的實例方法
class Counter {
    var count = 0
    
    func increment() {
        count += 1
    }
    
    func increment(by count: Int) {
        self.count += count
    }
    
    func reset() {
        count = 0
    }
}

let counter = Counter()
print(counter.count)
//0
counter.increment()
print(counter.count)
//1
counter.increment(by: 10)
print(counter.count)
//11
counter.reset()
print(counter.count)
//0

結構體修改屬性 mutating

//結構體修改屬性 mutating
struct Point {
    var x = 0.0, y = 0.0
    mutating func moveBy(x deltaX: Double, y deltaY: Double) {
        x += deltaX
        y += deltaY
    }
}
var point = Point(x: 1.0, y: 1.0)
point.moveBy(x: 2.0, y: 2.0)
print(point)
//Point(x: 3.0, y: 3.0)

枚舉修改屬性 mutating

//枚舉修改屬性 mutating
enum TriStateSwitch {
    case off, low, high
    mutating func next() {
        switch self {
        case .off:
            self = .low
        case .low:
            self = .high
        case .high:
            self = .off
        }
    }
}

var ovenLight = TriStateSwitch.low
print(ovenLight)
//low
ovenLight.next()
print(ovenLight)
//high
ovenLight.next()
print(ovenLight)
//off

類方法

//類方法
class Tool {
    static func getSize() -> (Int, Int) {
        return (100, 100)
    }
}

print(Tool.getSize())
//(100, 100)

結構體用下標訪問 subscript

//結構體用下標訪問 subscript
struct TimesTable {
    let multiplier: Int
    subscript(index: Int) -> Int {
        return multiplier * index
    }
}
let threeTimesTable = TimesTable(multiplier: 3)
print(threeTimesTable[4])
//12

類用下標訪問 subscript

//類用下標訪問 subscript
class Matrix {
    let rows: Int, cols: Int
    
    var grid: [Double]
    
    init(rows: Int, cols: Int) {
        self.rows = rows
        self.cols = cols
        grid = Array(repeating: 0.0, count: rows * cols)
    }
    
    func indexIsValid(row: Int, col: Int) -> Bool {
        return row >= 0 && row < rows && col >= 0 && col < cols
    }
    
    subscript(row: Int, col: Int) -> Double {
        get {
            assert(indexIsValid(row: row, col: col), "Index out of range")
            return grid[(row * cols) + col]
        }
        
        set {
            assert(indexIsValid(row: row, col: col), "Index out of range")
            grid[(row * cols) + col] = newValue
        }
    }
}

var matrix = Matrix(rows: 2, cols: 2)
print(matrix.grid)
//[0.0, 0.0, 0.0, 0.0]
matrix[0, 0] = 1.0
matrix[0, 1] = 2.0
matrix[1, 0] = 3.0
matrix[1, 1] = 4.0
print(matrix.grid)
//[1.0, 2.0, 3.0, 4.0]

枚舉用下標訪問 subscript

//枚舉用下標訪問 subscript
enum Direction: Int {
    case top, right, bottom, left
    static subscript(n: Int) -> Direction {
        return Direction(rawValue: n)!
    }
}
let right = Direction[1]
print(right)
//right

“如何使用swift類方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

静乐县| 青田县| 阳泉市| 铜川市| 北票市| 宁国市| 武平县| 阿鲁科尔沁旗| 丽水市| 芒康县| 胶州市| 杨浦区| 兴海县| 景德镇市| 大荔县| 开江县| 泰宁县| 土默特右旗| 石屏县| 巴彦淖尔市| 延安市| 漠河县| 周宁县| 扶沟县| 綦江县| 通海县| 贵德县| 宁蒗| 黔东| 汶川县| 珠海市| 华安县| 太和县| 军事| 千阳县| 团风县| 枣强县| 沙湾县| 景洪市| 双牌县| 托克托县|