Swift--10结构体

Swift--10结构体,第1张

概述struct Point {     //结构体中可以定义成员变量     var x: Double = 0     var y: Double = 0     //系统默认创建两个构造方法,用于初始化成员变量     //并且不需要返回,也不需要使用func关键字     //1、无参     init() {         print("无参数构造方法")     }     //2、带参

struct Point {

//结构体中可以定义成员变量

var x: Double = 0

var y: Double = 0

//系统默认创建两个构造方法,用于初始化成员变量

//并且不需要返回,也不需要使用func关键字

//1、无参

init() {

print("无参数构造方法")

}

//2、带参

init(x: Double,y: Double) {

print("成员逐一构造器")

self.x = x

self.y = y

}

//3、构造方法可以定义多个,系统会根据调用形式进行区分

init(newX: Double) {

x = newX

}

//结构体中可以定义成员方法

func isOnAxis() -> Bool {

if x==0 || y==0 {

return true

}

return false

}

//除了构造方法,其它方法中不能修改成员变量,除非添加mutating

mutating func changetoOriginal() {

x = 0

y = 0

}

//可以定义结构体方法(不属于任何实例变量,通过结构体名调用,类似于类方法)

static func structFunc() {

print("This is struct function")

}

//可以定义结构体变量(不属于任何实例变量,通过结构体名调用)

static var value: Int = 0

}

//结构体成员逐一构造器

var p1 = Point(x: 100,y: 0)

//若所有成员变量有初值则可以使用无参的形式

var p2 = Point()

p2.x = 10

p2.y = 20

print(p2.isOnAxis())//false

//通过自定义的构造方法创建变量

var p3 = Point(newX: 10)

p3.changetoOriginal()

print(p3)//Point(x: 0.0,y: 0.0)

//结构体是值类型

var p4 = Point(x: 100,y: 100) //成员逐一构造器

var p5 = p4


//改变p4的值,对p5没有任何影响

p4.changetoOriginal()

print("p5 = (\(p5.x),\(p5.y))") //p5 = (100.0,100.0)

//调用结构体方法

Point.structFunc() //This is struct function

//调用结构体变量

Point.value = 100

print(Point.value) //100



struct Size {

var wIDth: Double = 0.0

var height: Double = 0.0

}


struct Rect {

//originsize为存储属性

var origin: Point = Point()

var size: Size = Size()

//center为计算属性(不能存储,是计算得来的)

//若只有getter方法,没有setter方法,则称为只读计算属性

var center: Point {

//getter方法

get {

let x = origin.x + size.wIDth/2

let y = origin.y + size.height/2

return Point(x: x,y: y)

}

//serter方法,newValue是默认的参数名,也可自己指定

set/*(newValue)*/ {

origin.x = newValue.x - size.wIDth/2

origin.y = newValue.y - size.height/2

}

}

func createValue() -> Int {

print("产生随机数")

return Int(arc4random())

}

//延迟存储属性(懒加载)

lazy var lazyValue: Int = self.createValue()

//属性监视器

var property: Int = 0 {

willSet {

print("即将设置")

}

dIDSet {

print("已经设置")

}

}

}


var rect = Rect() //无参数构造方法

rect.size = Size(wIDth: 100,height: 100)

//在第一次调用的时候才加载

print(rect.lazyValue) //3056669642


print(rect.center)

//成员逐一构造器

//Point(x: 50.0,y: 50.0)


rect.center = Point(x: 100,y: 100)

print(rect.origin)


//测试属性监视器

rect.property = 100

//即将设置

//已经设置

总结

以上是内存溢出为你收集整理的Swift--10结构体全部内容,希望文章能够帮你解决Swift--10结构体所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1062863.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存