1.在 Swift 中,所有的基本类型:整数(Integer)、浮点数(floating-point)、布尔值(Booleans)、字符串(string)、数组(array)和字典(dictionaries),都是值类型,并且都是以结构体的形式在后台所实现。
2.在 Swift 中,所有的结构体和枚举都是值类型。这意味着它们的实例,以及实例中所包含的任何值类型属性,在代码中传递的时候都会被复制。
3.一般情况下,值类型的实例方法中不可以修改属性,若是确有需求,可以选择变异
方法
struct Point {
var x = 0.0, y = 0.0
//区分属性和参数
func isToTheRightOfX(x: Double) -> Bool {
return self.x > x
}
//改变结构属性值(mutating)
mutating func addXY(n1: Double, n2: Double) {
x += n1
y += n2
}
//或者
//self = Point(x: x + n1, y: y + n2)
}
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var point = Point(x: 1.0, y: 3.0)
if point.isToTheRightOfX(0.5) {
view.backgroundColor = UIColor.redColor()
}
print("改变前:\(point)")
point.addXY(2.0, n2: 3.0)
print("改变后:\(point)")
}
}