以下是关于 Swift 结构体的基本信息和使用方法:
结构体的定义
// 简单的结构体定义
struct Point {
var x: Double
var y: Double
}
// 结构体的实例
var origin = Point(x: 0.0, y: 0.0)
结构体的属性和方法
struct Rectangle {
var width: Double
var height: Double
// 计算属性
var area: Double {
return width * height
}
// 方法
func description() {
print("Rectangle: width = \(width), height = \(height)")
}
}
var rect = Rectangle(width: 10.0, height: 5.0)
print("Area: \(rect.area)")
rect.description()
结构体的初始化器
结构体默认提供一个逐一成员初始化器,你也可以自定义初始化器:
struct Size {
var width: Double
var height: Double
// 自定义初始化器
init(width: Double, height: Double) {
self.width = width
self.height = height
}
}
let size = Size(width: 3.0, height: 4.0)
结构体的值类型特性
结构体是值类型,这意味着当你将结构体赋值给新的常量或变量,或者将结构体传递给函数或方法时,其值会被复制:
var size1 = Size(width: 2.0, height: 3.0)
var size2 = size1 // size1 的值被复制到 size2
size1.width = 5.0
print("size1 width: \(size1.width)") // 输出 5.0
print("size2 width: \(size2.width)") // 输出 2.0
结构体和类的比较
结构体和类有相似的语法,但它们有一些关键的区别。主要的区别在于值类型与引用类型,以及结构体是值拷贝,而类是引用拷贝。
struct ValueType {
var value: Int
}
class ReferenceType {
var value: Int = 0
}
var x = ValueType(value: 10)
var y = x
x.value = 20
print("x.value: \(x.value)") // 输出 20
print("y.value: \(y.value)") // 输出 10
var a = ReferenceType()
var b = a
a.value = 30
print("a.value: \(a.value)") // 输出 30
print("b.value: \(b.value)") // 输出 30
以上是一些关于 Swift 结构体的基本用法。结构体适用于简单的数据结构,它们的值被复制,适用于不需要共享状态的情况。
转载请注明出处:http://www.zyzy.cn/article/detail/14427/Swift