//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