Swift-全局变量、局部变量、方法和下标

//1.全部变量和局部变量

struct SomeStruct {
    static var storedTypeP = "SomeValue"
    static var computedTypeProperty:Int {return 1}
}
enum SomEnum {
    static var storedTypeP = "SomeValue"
    static var computedTypeProperty:Int {return 4}
}
class SomeClass {
    static var storedTypeP = "SomeValue"
    static var computedTypeProperty:Int {return 29}
    class var overrideComputedTypeP: Int {
        return 107
    }
}
//计算属性(类名.方法名)
print(SomeStruct.storedTypeP)  
print(SomEnum.computedTypeProperty)
print(SomeClass.computedTypeProperty)

2.类方法和实例方法:

class Student {
    //实例方法
    func sayHello() {
        print("Hello")
    }
}
//在结构体或者枚举中使用static 在类中使用class
//实例方法
var newStudent = Student()
newStudent.sayHello()
//类方法
var d = -12.3
if d.isLess(than: 0) {//判断是否是负数
  d = abs(d)//类方法 取绝对值 这个是个泛型,传入参数是什么类型,出来是什么类型
 }
print(d)//结果:12.3

3.下标:

//下标 subscript
struct TimerOfNum {
    let num:Int //作为结构体的常量属性
    subscript(index:Int) -> Int { //定义一个下标,返回它和外界传入参数的乘积
        return num * index
    }
    subscript(index:Int,index2:Int) -> Int {
        return num * index + index2
    }
}

使用:

let timerOfFive = TimerOfNum(num: 5)
print(timerOfFive[3])//输出结果:15
//根据参数不同,调用不同的下标 参数名称是隐藏的
print(timerOfFive[4,5])//输出结果:25

猜你喜欢

转载自www.cnblogs.com/StevenHuSir/p/Swift_Subscript.html