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

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...