import Foundation
struct Frame { // 存储属性: 仅仅做存储值得作用 // 计算属性: 通过计算获取自己的值 var x : Float var y : Float var width : Float var height : Float
// 属性的作用: 声明了getter setter方法 // 实现了setter和getter方法 // 声明了一个带下划线的同名变量 // 计算属性通过计算获取自己的值 // 设置属性的set和get方法 // 属性里面的set方法不能单独存在,必须有一个 同属性的get方法存在滞后才能写set var centerX : Float { get { return self.x + width / 2 } set { self.centerX = newValue } }
var centerY : Float { get { return self.y + height / 2 } set { self.centerY = newValue } } // Swift的结构体里面,可以创建一个init方法(x 是外部参数名 newX是内部参数名 函数内部不能使用外部参数名) init(x newX : Float, y newY : Float, width newWidth : Float, height newHeight : Float) { self.x = newX self.y = newY self.width = newWidth self.height = newHeight } //Swift的结构体可以任意的创建函数 // 如果需要在函数里面修改属性的值得话,需要在函数前面添加mutating mutating func test() { self.x = 100 } // 结构体属性 // 不能在普通的函数里面去调用的 static var name : String? = nil // 结构体函数 // 结构体函数里面不能调用普通的属性 // 结构体函数里面可以调用结构体属性 // 结构体函数里面可以调用一些本结构体存在的函数 static func test1() { self.name = "shen" print(self.name) } }
let frame : Frame = Frame.init(x: 2, y: 2, width: 2, height: 2)
print(frame.centerX, frame.centerY)
let frame1 : Frame = Frame(x: 3, y: 3, width: 3, height: 3)
print(frame1.centerX, frame1.centerY) // 调用结构体函数, 必须通过这个结构体去调用 Frame.test1()
网友评论