免费开源的iOS开发学习平台

Swift语法介绍: 结构体struct

结构与类相似,也是一种组织数据的方式,用于存储数据的组织构造。与类不同的是:1) 结构不支持继承,而继承却是类的重要特征 ;2)对于结构变量的拷贝是值拷贝(深拷贝),而类的对象拷贝是指针拷贝(浅拷贝)

结构体的定义

//定义一个Point结构体,用于描述二维坐标系中的一个点,这个点有一个x轴坐标和一个y轴坐标,另外还有一个点名称
struct Point2D {
    var x:Double
    var y:Double
    var pointName:String
}
//指定初始值
struct Point3D {
    var x:Double = 0
    var y:Double = 0
    var z:Double = 0
}
//在结构体中定义函数
struct PointWithFunc {
    var x:Double = 0
    var y:Double = 0
    func printPoint() {
        print("Point X is \(x), Y is \(y)")
    }
}

结构体的初始化

//定义结构体时,如果不指定初始值,那么在初始化时需要手工指定
var point1 = Point2D(x: 0, y: 0, pointName: "zeroPoint")

//在定义结构体时,如果已经指定了初始值,那么初始化时可以不再赋值
var point2 = Point3D()

结构体成员赋值

point1.x = 10.0
point1.y = 20.0
point1.pointName = "NewPoint"

结构体的成员取值

print(point1)
print(point1.x)
print(point1.y)
print(point1.pointName)

运行结果:

结构体的拷贝

结构体的拷贝属于值拷贝,即深拷贝。

var point3 = point1
point3.x = 100
point3.y = 200
point3.pointName = "The Third Point"
print(point1, point3)

运行结果:

调用结构体中定义的函数

var point4 = PointWithFunc(x: 50, y: 150)
point4.printPoint()

运行结果:

代码下载

https://github.com/99ios/SwiftBasic

视频教程