微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【swift】15-0605 属性

//属性
//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 = 背包(物品列表: [“金疮药”,”魔法药”])

原文地址:https://www.jb51.cc/swift/327016.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐