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"
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章