原创文章,欢迎转载。转载请注明:关东升的博客

计算属性本身不存储数据,而是从其他存储属性中计算得到数据。

计算属性概念:

计算属性提供了一个getter(取值访问器)来获取值,以及一个可选的setter(设置访问器)来间接设置其他属性或变量的值。计算属性的语法格式如下:

面向对象类型类型名 {  存储属性       ......var 计算属性名: 属性数据类型 {get {                     return 计算后属性值   }                     set (新属性值) {           ......}                     }
}

定义计算属性比较麻烦,要注意后面的几个大括号的对齐关系。

我们先看一个示例:

import Foundation    class Employee {var no: Int = 0var firstName: String = "Tony"    //存储属性var lastName: String = "Guan"//存储属性var job: String?var salary: Double = 0lazy var dept: Department = Department()var fullName: String {    //计算属性get {return firstName + "." +lastName      //返回拼接的结果}set (newFullName) {   //存储传递进来的参数值var name =newFullName.componentsSeparatedByString(".")    firstName = name[0]lastName = name[1] }}
}struct Department {let no: Int = 0var name: String = ""
}var emp = Employee()
print(emp.fullName)      //取出属性值emp.fullName ="Tom.Guan"    //给属性赋值
print(emp.fullName)

只读计算属性:

计算属性可以只有getter访问器,没有setter访问器,这就是只读计算属性。指定计算属性不仅不用写setter访问器,而且get{}代码也可以省略。与上一节相比,代码将大大减少。修改上一节示例为只读计算属性,代码如下:

class Employee {var no: Int = 0var firstName: String = "Tony"var lastName: String = "Guan"var job: String?var salary: Double = 0lazy var dept: Department = Department()var fullName: String {    //简洁的setter访问器return firstName + "." +lastName}
}struct Department {let no: Int = 0var name: String = ""
}var emp = Employee()
print(emp.fullName)

只读计算属性不能够赋值,下列语句是错误的。

emp.fullName = "Tom.Guan"

欢迎关注关东升新浪微博@tony_关东升。
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
 
更多精品iOS、Cocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
智捷课堂论坛网站:http://51work6.com/forum.php

转载于:https://blog.51cto.com/tonyguan/1746597

《从零开始学Swift》学习笔记(Day 32)——计算属性相关推荐

  1. 从零开始学STM32(学习笔记——第三天)

    CSDN话题挑战赛第2期 参赛话题:学习笔记 参考文章: [教学文章]STM32内部重要功能全记录 [教学文章]STM32内部核心功能大揭秘 [教学文章]STM32内部重要功能全记录 框架:STM32 ...

  2. Vue学习笔记之04-computed计算属性

    计算属性 computed 什么是计算属性, 在某些情况下, 需要将数据先进行转化后再进行显示, 或者需要将多个数据结合后再进行显示, 那么就需要将属性进行处理, 这就叫做计算属性 在进行变量的操作的 ...

  3. MXNet动手学深度学习笔记:卷积计算

    为什么80%的码农都做不了架构师?>>>    #coding:utf-8 ''' 卷积计算 ''' import mxnet as mx from mxnet.gluon impo ...

  4. 影像组学视频学习笔记(32)-使用SimpleITK进行N4偏置场校正、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/ae0f502dc146 来源:简书,已获授权转载 RadiomicsWorld.com "影像组学世界" ...

  5. Li‘s 影像组学视频学习笔记(28)-ROI/病灶体积的计算、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学的系列教学视频 本节(28)主要讲解: 用SimpleITK包进行ROI/病灶体积的计算 1.加载包 import SimpleITK as sitk im ...

  6. 【从零开始学深度学习编译器】十二,MLIR Toy Tutorials学习笔记一

    本笔记由学习MLIR Tutorials总结而成,欢迎批评指正. Chapter1: Toy语言和AST MLIR提供了一种Toy语言来说明MLIR的定义和执行的流程.Toy语言是一种基于张量的语言, ...

  7. 百度计算广告学沙龙学习笔记 - 内容匹配广告

    百度计算广告学沙龙学习笔记 - 内容匹配广告 时间 2014-02-05 18:53:55 CSDN博客 原文  http://blog.csdn.net/three_body/article/det ...

  8. matlab数组平方的计算自定义函数_从零开始的matlab学习笔记——(38)简单数论计算函数:取整,gcd,lcm,质数,全排列...

    matlab应用--求极限,求导,求积分,解方程,概率统计,函数绘图,三维图像,拟合函数,动态图,傅里叶变换,随机数,优化问题....更多内容尽在个人专栏:matlab学习 翻了翻优化工具箱,发现内容 ...

  9. 关东升的《从零开始学Swift》即将出版

    大家好: 苹果2015WWDC大会发布了Swift2.0,它较之前的版本Swift1.x有很大的变化,所以我即将出版<从零开始学Swift><从零开始学Swift>将在< ...

  10. 动手学深度学习笔记3.4+3.5+3.6+3.7

    系列文章目录 动手学深度学习笔记系列: 动手学深度学习笔记3.1+3.2+3.3 文章目录 系列文章目录 前言 一.softmax回归 1.1 分类问题 1.2 网络架构 1.3 全连接层的参数开销 ...

最新文章

  1. 详细讲解Python中继承内容之 单继承;(一)
  2. (转)Javascript 面向对象编程(一):封装
  3. VSC为_计及功率控制模式的VSC-MTDC交直流并列运行系统概率潮流计算
  4. midaspay能删除吗_midasPay返回90009错误
  5. Nodejs学习笔记(七)——接口API
  6. 通信网中的数据报子网和虚电路子网
  7. 自定义ContentProvider
  8. 软件测试流程五个阶段
  9. 人工智能:智能优化算法
  10. 八卦与十二地支方位图_[天干地支五行八卦图] 天干地支八卦方位图
  11. 各平均数介绍(算数平均数、几何平均数、加权算术平均数)
  12. Python中常用英文单词大全
  13. U3D常用介绍,搭建一个简单的三维效果
  14. GIDC全球互联网数据大会:政企应用如何构筑安全合规的互联内容分发加速?
  15. 如何学习大数据!!我要做大数据! 1
  16. 【python】录音语音识别
  17. 从零开始学C语言 : 初阶指针
  18. 电子垃圾也很香 篇一:垃圾佬捡个路由器1:选择与刷机
  19. HTML实现领取QQ名片赞,易语言领取QQ名片赞
  20. [Luogu P3960] [UOJ 334] [NOIP 2017 tg]列队

热门文章

  1. python相册特效模块_PIL包中Image模块的convert()函数的具体使用
  2. python发送图片邮件exchangelib_python基于exchange函数发送邮件过程详解
  3. linux ubuntn j经验
  4. java编写数字时钟_用JAVA写数字时钟
  5. python输出字符串拼接数字_python实现字符串和数字拼接
  6. 自然辩证法与计算机科学的关系,科学技术与自然辩证法的关系 毕业论文
  7. xpath获取标签的属性值_[Selenium]12.加餐: 如何手写xpath
  8. android 动画 alpha,浅析Android 动画之AlphaAnimation应用操作
  9. 巅峰抢购助手pc_豌豆荚、91助手宣布暂停部分服务!第三方应用商店为何式微?...
  10. R语言中样本平衡的几种方法