博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift-计算型属性和存储型属性的区别
阅读量:4046 次
发布时间:2019-05-24

本文共 911 字,大约阅读时间需要 3 分钟。

存储型属性:用于存储一个常量或者变量

class Person1 {            var name: String = "lili"            let age: Int = 10            lazy var p1:Person1 = Person1()     }

// 用lazy 修饰的,是延迟加载,必须用 var 修饰

// 用 var 修饰的 name,可以在外界改变值,而用let 修
// 饰的属性age,外面不可以改变其值

**简单来说,存储型属性主要就是用来存储值的

计算型属性: 计算性属性不直接存储值,而是用 get / set 来取值 和 赋值,可以操作其他属性的变化.

// get 用来取值

// set 用来赋值

class Person2{
var weight: Int = 10 var height: Int = 5 // age 实现了get 和set 方法,可以在外面给这个属性赋值. var age: Int { get { return height * 3 } set(newValue){ // 或者直接用 newAge height = newValue * 5 } }//如果不实现set 方法,是不能给其赋值的,这种类型的属于只读计算属性.只读计算属性是可以省略get 的,直接返回即可.如 size 属性 var size: Int{ return height * 3 }//MARK: 计算属性死循环情况 /* 计算属性值是不固定的,不能用 let 修饰,只能用 var 计算型属性不能直接赋值 */// 下面的 get 和 set 方法都会导致死循环 var name: String{ get { return name // 这里会调用 get 方法 } set { name = newValue // 这里调用 set 方法 } }}

转载地址:http://ibwci.baihongyu.com/

你可能感兴趣的文章
[LeetCode By Python]122. Best Time to Buy and Sell Stock II
查看>>
[LeetCode By Python]125. Valid Palindrome
查看>>
[LeetCode By Python]136. Single Number
查看>>
SVN客户端命令详解
查看>>
Android/Linux 内存监视
查看>>
Linux系统信息查看
查看>>
用find命令查找最近修改过的文件
查看>>
Android2.1消息应用(Messaging)源码学习笔记
查看>>
android raw读取超过1M文件的方法
查看>>
ubuntu下SVN服务器安装配置
查看>>
MPMoviePlayerViewController和MPMoviePlayerController的使用
查看>>
CocoaPods实践之制作篇
查看>>
[Mac]Mac 操作系统 常见技巧
查看>>
苹果Swift编程语言入门教程【中文版】
查看>>
捕鱼忍者(ninja fishing)之游戏指南+游戏攻略+游戏体验
查看>>
iphone开发基础之objective-c学习
查看>>
iphone开发之SDK研究(待续)
查看>>
计算机网络复习要点
查看>>
Variable property attributes or Modifiers in iOS
查看>>
NSNotificationCenter 用法总结
查看>>