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)








