【swift】15-0605 属性

来源:互联网 发布:it数据分析师 编辑:程序博客网 时间:2024/05/18 06:19

//属性
//1.懒属性 — 因为赤月恶魔巢穴这个地图很少有人进去,所以先不加载,等到要用的时候在加载。这就是懒属性,用到的时候才载入,节省了初始化的时间。
class 地图类 {
var 文件名 = “赤月恶魔巢穴.map”
}
class 角色类 {
lazy var 打怪地图 = 地图类()
var 上线 = true
}
let 角色1 = 角色类() //这时并不会载入地图
角色1.打怪地图 //现在开始载入地图。同理看新闻的时候只有点了科技这一栏才载入科技相关的页面。

//2.计算属性
struct 坐标 {
var 横 = 0, 纵 = 0
}
struct 步伐 {
var 走 = 0, 跑 = 0
}
struct 人物斜向上移动 {
var 初始坐标 = 坐标()
var 人物步伐 = 步伐()
}
struct 人物斜上移动 {
var 初始坐标 = 坐标()
var 人物步伐 = 步伐()
var 走坐标: 坐标 {
get {
let 新横 = 初始坐标.横 + 人物步伐.走
let 新纵 = 初始坐标.纵 + 人物步伐.走
return 坐标(横: 新横, 纵: 新纵)
}
set { //如果set这个一块去掉,那么get得到的是只读的属性,不能修改其中的值。
初始坐标.横 = newValue.横 - 人物步伐.走
初始坐标.纵 = newValue.纵 - 人物步伐.走
}
}
}
var 某次移动 = 人物斜上移动(初始坐标: 坐标(), 人物步伐: 步伐(走: 10, 跑: 20))
某次移动.走坐标
某次移动.走坐标 = 坐标(横: 30, 纵: 30)
某次移动.初始坐标

//总攻击力
struct 战士 {
var 武器攻击力 = 0, 头盔攻击力 = 0, 戒指攻击力 = 0, 战衣攻击力 = 0
var 经验倍数 = 1
var 总攻击力 : Int {
return 经验倍数 * (武器攻击力 + 头盔攻击力 + 戒指攻击力 +战衣攻击力)
}
}
let 一个战士 = 战士(武器攻击力: 30, 头盔攻击力: 2, 戒指攻击力: 4, 战衣攻击力: 10, 经验倍数: 3)
一个战士.总攻击力

//属性监视器
class 经验计算 {
var 总经验 : Int = 0 {
willSet {
println(“当前经验是(newValue)”)
}
didSet {
println(“增加(总经验 - oldValue)”)
}
}
}
var 游戏人物经验计算 = 经验计算()
游戏人物经验计算.总经验 = 1000
游戏人物经验计算.总经验 = 1800

//类型的属性 - 静态
struct 背包 {
static let 最大载荷 = 300
var 物品列表 : [String]
}
背包.最大载荷
var 背包1 = 背包(物品列表: [“金疮药”,”魔法药”])

0 0
原创粉丝点击