加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift静态方法

发布时间:2020-12-14 06:35:40 所属栏目:百科 来源:网络整理
导读:版权声明:本文为博主原创文章,未经博主允许不得转载。 与静态属性类似,Swift中还定义了静态方法,也称为类型方法,所谓“类型”是指枚举、结构体和类。静态方法定义的方法也是与静态属性类似的,枚举和结构体的静态方法使用的关键字是static,类的静态方
与静态属性类似,Swift中还定义了静态方法,也称为类型方法,所谓“类型”是指枚举、结构体和类。静态方法定义的方法也是与静态属性类似的,枚举和结构体的静态方法使用的关键字是static,类的静态方法使用的关键字是class。
一、结构体中静态方法
下面我们先看一个结构体静态方法的示例,代码如下:
[html] view plain copy
print ?
  1. structAccount{
  2. varowner:String="Tony"//账户名①
  3. staticvarinterestRate:Double=0.668//利率②
  4. staticfuncinterestBy(amount:Double)->Double{③
  5. returninterestRate*amount
  6. }
  7. funcmessageWith(amount:Double)->String{④
  8. varinterest=Account.interestBy(amount)
  9. return"(self.owner)的利息是(interest)"
  10. }
  11. //调用静态方法
  12. println(Account.interestBy(10_000.00))⑤
  13. varmyAccount=Account()⑥
  14. //调用实例方法
  15. println(myAccount.messageWith(10_000.00))⑦


上述代码是定义Account结构体,第①行代码声明了实例属性owner。第②行代码声明了静态属性interestRate。第③行代码是定义静态方法interestBy,静态方法与静态计算属性类似,它不能访问实例属性或实例方法。
第④行是定义实例方法messageWith,实例方法能访问实例属性和方法,也能访问静态属性和方法。在该方法中我们使用self.owner语句,其中self是一个隐藏属性,指代当前类型实例,一般情况下我们不要使用它,除非属性名与变量或常量名发生冲突。
提示 Swift的静态方法中也能使用self,这在其他面向对象的计算机语言中是不允许的。此时self表示当前数据类型,不代表枚举、结构体或类的实例。
二、枚举中静态方法
下面我们再看一个枚举静态方法的示例,代码如下:
copy
enumAccount{
  • case中国银行
  • case中国工商银行
  • case中国建设银行
  • case中国农业银行
  • staticvarinterestRate:Double=0.668//利率①
  • staticfuncinterestBy(amount:Double)->Double{②
  • //调用静态方法
  • println(Account.interestBy(10_000.00))③


  • 上述代码是定义Account枚举,第①行代码声明了静态属性interestRate。第②行代码是定义静态方法interestBy,静态方法与静态计算属性类似,它不能访问实例属性或实例方法。第③行代码是调用静态方法。
    从示例可以看出,结构体和枚举的静态方法使用定义没有区别。
    三、类中静态方法
    下面我们再看一个类方法的示例,代码如下:
    copy
    classAccount{
  • varowner:String="Tony"//账户名
  • classfuncinterestBy(amount:Double)->Double{①
  • return0.8886*amount
  • println(Account.interestBy(10_000.00))②


  • 上述代码是定义Account类,第①行代码是使用关键字class定义静态方法interestBy,静态方法与静态计算属性类似,它不能访问实例属性或实例方法。第②行代码是调用静态方法。

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读