swift方法與下標

前言

和大家說一個搞笑的事情,昨天一個chuanzhi播客的老師給我打電話,上來就說我,畢業等於失業,你可知道 可把我嚇壞了,他說學習android 的即將面臨失業 ,我竟然還信了! 然後我誇她 ,我說:我一直就是學習你們的教程來的 ,你們教的不錯。兄弟們,你品你細品! 哈哈哈!

下標語法

官方簡介:下標允許你通過在實例名稱後面的方括號中傳入一個或者多個索引值來對實例進行查詢。它的語法類似於實例方法語法和計算型屬性語法。

格式:

subscript(index: Int) -> Int {
    get {
      // 返回一個適當的 Int 類型的值
    }
    set(newValue) {
      // 執行適當的賦值操作
    }
}

看例子:

class np{
    
    var name = "sjjs"
    var age = "1991"
    var sex = "boy"
    
    subscript(sum:Int)->String?{
        
        get{
            switch sum {
                case 1:
                    return(name)
                case 2:
                    return(age)
                case 3:
                    return(sex)
            default:
                return "\(sum-sum)"
            }
            return nil
        }
        
        set{
            name+newValue!
        }
    }
}

var nnp = np()
nnp.age="1o21"
nnp.name="kajd"
nnp.sex="kasd"
nnp[1]
nnp[2]
nnp[3]

分析:上面的例子,我定義了一個np類 有三個屬性 姓名,年齡,性別。
然後根據下標語法 ,來返回不同的屬性 。 首先我實例化了一個nnp 然後給每個存儲屬性賦值,最後根據傳入的索引 來返回不同的值,

由上面可見:下標是一個計算屬性。 下標沒有名字

類型下標


class xiabiao{

    static var gridFriend:[String] = []
    
    class subscript(index:Int)->String!{
       return gridFriend[index]
    }
    
}


xiabiao.gridFriend.append( "shiji")

xiabiao.gridFriend.append( "shsadiji")

xiabiao.gridFriend.append("shiasdji")

xiabiao.gridFriend.append( "shiasdfasji")

xiabiao[1]

**注意這裏是:用下標方法的對像來進行操作 不要搞混了
枚舉 / 結構體 中的 static 類型屬性是通過本身來進行操作的

總結:類型方法 類型屬性 類型下標 通過對象操作
類型屬性:必須使用計算屬性 也就是要包括 get and set方法**

方法

方法是什麼:方法是與某些特定類型相關聯的函數。類、結構體、枚舉都可以定義實例方法;實例方法爲給定類型的實例封裝了具體的任務與功能。類、結構體、枚舉也可以定義類型方法;類型方法與類型本身相關聯。類型方法與 Objective-C 中的類方法(class methods)相似。

class count{
    
    var jishu:Int = 0
    
    func one()  {
        self.jishu+=1
    }
    
    func two(num:Int){
        if jishu>10 {
            jishu+=10
        }
    }
    
    class func somone()->String{
        return "ok"
    }
    
    
}

var mei = count()
mei.jishu
mei.one()
print(mei.two(num: 11))

count.somone()

類型方法

class func somone()->String{
        return "ok"
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章