详解Swift编程中的方法与属性的概念

2020-01-08 22:33:09丽君

    
    func tot(c:Int)->Int{return res - c
    }
    
    func result(){
        println("Result is: (tot(20))")
        println("Result is: (tot(50))")}}let pri = calculations(a:600, b:300)let sum = calculations(a:1200, b:300)

 

pri.result()
sum.result()


当我们使用 playground 运行上面的程序,得到以下结果

 


Inside Self Block: 900
Inside Self Block: 1500
Result is: 880
Result is: 850
Result is: 1480
Result is: 1450

修改的实例方法值类型
在 Swift 语言结构和枚举和值类型不能由它的实例方法来改变。然而,swift 语言通过“变异”行为提供了灵活修改值类型。突变将使得在实例方法中的任何变化,将方法执行之后变化返回到原来的形式。此外,由 “selft” 属性的新实例其隐式函数创建,执行之后将取代现有的方法

复制代码
struct area {var length =1var breadth =1
    
    func area()->Int{return length * breadth
    }
    
    mutating func scaleBy(res:Int){
        length *= res
        breadth *= res
        
        println(length)
        println(breadth)}}var val = area(length:3, breadth:5)
val.scaleBy(3)
val.scaleBy(30)
val.scaleBy(300)
当我们使用 playground 运行上面的程序,得到以下结果

 


9
15
270
450
81000
135000

Self 属性的不同诱变方法
突变方法结合 “self” 属性分配给新实例所定义的方法。

复制代码
struct area {var length =1var breadth =1
    
    func area()->Int{return length * breadth
    }
    
    mutating func scaleBy(res:Int){self.length *= res
        self.breadth *= res
        println(length)
        println(breadth)}}var val = area(length:3, breadth:5)