Swift计算属性

Swift计算属性,第1张

概述//// main.swift// Swift计算属性//// Created by Goddog on 15/7/20.// Copyright © 2015年 Goddog. All rights reserved.//import Foundationprint("swift的计算属性类似于Java的setter和getter方法,枚举、结构体、类都可以定义计算属
////  main.swift//  Swift计算属性////  Created by Goddog on 15/7/20.//  copyright © 2015年 Goddog. All rights reserved.//import Foundationprint("swift的计算属性类似于Java的setter和getter方法,枚举、结构体、类都可以定义计算属性,都有set和get方法哦")/**修饰符 var 计算属性名: 属性类型{    get    {        //get方法执行体,该方法必须有返回值    }    set()    {        //set方法执行体,该方法一定不能有返回值    }}其中修饰符、set可以省略*///枚举定义了一个计算属性enum Season{    case Spring,Summer,Fall,Winter    var info: String    {        //定义get方法        get{            print("get方法")            switch(self)            {            case .Spring:                return "春"            default:                return "无"            }        }        //定义set方法        set(newValue){            print("set方法")            print("传入参数为:\(newValue)")        }    }}var a = Season.Springprint(a.info)      //实际上是调用的getter方法a.info = "秋"      //实际上调用的setter方法//上面的示例只是简单赋值,并没有真正赋值class User{    var first: String = ""    var last: String = ""    //定义计算属性    var fullname: String    {        //定义计算属性的first、last两个属性决定        get{            return first + "-" + last        }        //定义计算属性的set方法,改变first、last两个存储属性        set(newValue){            var names = newValue.componentsSeparatedByString("-")            self.first = names[0]            self.last = names[1]        }    }        init(first: String,last: String)    {        self.first = first        self.last = last    }}let s = User(first: "曹",last: " *** ")print(s.fullname)   //调用get方法s.fullname = "刘-备"print("firstname: \(s.first),lastname: \(s.last)")//MARK: - setter方法简化/**计算属性的setter方法提供隐式的形参名,newValue上面可以是set{    var names = newValue.componentsSeparatedByString("-")    self.first = names[0]    self.last = names[1]}*///MARK: - 只读的计算属性//只有get部分,没有set部分的计算属性称之为只读的计算属性,而且只读计算属性定义部分甚至可以省略get关键字和花括号class Cat{    var first: String = ""    var last: String = ""    //定义只读计算属性,只有get部分(省略了)    var fullname: String    {        return first + "-" + last    }    init(first: String,last: String)    {        self.first = first        self.last = last    }}let name = User(first: "孙",last: "权")print(name.fullname)//只读计算属性不能被赋值,程序只能获取只读计算属性的值
总结

以上是内存溢出为你收集整理的Swift计算属性全部内容,希望文章能够帮你解决Swift计算属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1086351.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存