swift之存储属性和计算属性

swift中的属性分为类:存储属性和计算属性
1.存储属性(包含实例存储属性和类型存储属性):把常量或变量的值作为实例的一部分,可以直接读写赋值。变量可用var或者let关键字定义,用var定义的属性为变量存储属性,用let定义的属性为常量存储属性

2.计算属性:不直接存储值,本身只起计算作用,没有具体的值,提供一个getter来获取值,类似于方法的功能

class Pet
{
    var age = 12
    var name = "小花"
    var kind = "法斗"
    //定义计算属性的getter方法,该方法的返回值由age、name、kind三个存储属性决定
    var petInfo:String{
         get {
                return "this is a pet which name is \(name),age is \(age), kind is      \(kind)"
             }
         set (newInfo)
           {
           }
         }
 }
   
   //创建一个实例
    let pet = Pet.init()
    print(pet.petInfo)//调用get方法
    //this is a pet which name is 小花,age is 12, kind is 法斗
    pet.petInfo = "this is a pet which name is laoqi,age is 2, kind is taidi"//调用set方法
    print(pet.petInfo)
    //this is a pet which name is laoqi,age is 2, kind is taidi

存储属性和计算属性比较:

  • 计算属性可以用于类、结构体和枚举,存储属性只能用于类和结构体。
  • 存储属性可以是变量存储属性(用关键字 var 定义),也可以是常量存储属性(用关键字let定义),而计算属性只能用var定义
  • 计算属性不直接存储值,而是提供一个 getter 和一个可选的setter,来间接获取和设置其他属性或变量的值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容