//属性:主要作用是存储数据,可以常量属性和变量属性struct Fix {
var first : Int
let len : Int
}
var rang = Fix(first: 0, len: 3)
//let rangs = Fix(first: 0, len: 3)//let类型 初值一旦指定便不可修改
rang.first = 6print(rang)
//延时存储属性 : 初始化时不分配值,直到第一次使用它,属性lazy声明//使用的几率少的情况下使用lazyclassDataI {var file = "data.txt"
}
classDataM {
lazy var impor = DataI()
var data = ""
}
let manager = DataM()
//这个时候并没有访问impor这个属性
manager.data += "SomeData"
manager.data += "SomeMore"print(manager.impor.file,manager.data)
//计算属性struct Point {
var x = 0.0 , y = 0.0
}
struct Size {
var width = 0.0, height = 0.0
}
struct Rect {
var origin = Point()
var size = Size()
var center: Point {
get {
let centerX = origin.x + (size.width / 2)
let centerY = origin.y + (size.height / 2)
return Point(x: centerX, y: centerY)
}
set(newCenter) {
origin.x = newCenter.x - (size.width / 2)
origin.y = newCenter.y - (size.height / 2)
}
}
}
var square = Rect(origin: Point(x: 0.0, y: 0.0),
size: Size(width: 10.0, height: 10.0))
let squareCenter = square.center
square.center = Point(x: 15.0, y: 15.0)
print("正方形原点(\(square.origin.x), \(square.origin.y))")
//静态属性
struct Audio {
static let three =10
static varmax=0var current:Int =0 {
didSet {
if current > Audio.three {
current = Audio.three
}
if current > Audio.max {
Audio.max= current
}
}
}
}
var left = Audio()
left.current =7
print(left.current)
//调用的时候直接使用类或结构体名调用
print(Audio.max)
//print(left.max) //错误
//属性:主要作用是存储数据,可以常量属性和变量属性struct Fix { var first : Int let len : Int}var rang = Fix(first: 0, len: 3)//let rangs = Fix(first: 0, len: 3)//let类型 初值一旦指定便不可修改rang.first = 6print(rang)//延时存储