您当前的位置: 首页 >  swift

Swift类型推测在可选调用中的小提示

发布时间:2016-07-24 10:47:40 ,浏览量:0

我们知道Swift中协议里也有对应于Objc中的可选方法或计算属性,当然协议必须以@objc伪指令修饰否则不可以哦.

如下示例:

@objc protocol Transaction{
    fun commit()->Bool
    optional fun isComplete()->Bool
}

我们写一个类遵守Transaction协议的类:

class DBTransaction:Transaction{ fun commit()->{ //do something return true }
}

下面我们来使用这个类:

let db:Transaction = DBTransaction() //*** db.commit()
db.isComplete?() //注意这里使用可选调用

以上代码最后一行返回的是一个可选值,因为DBTransaction类没有实现isComplete方法,所以它将返回nil

值得注意的一点是,在上面的代码中注释***那行代码没有使用Swift提供的类型推测功能而是显式指定Transaction而不是DBTransaction.

如果Swift编译器使用类型推测,则最后一行会报错,因为编译器知道DBTransaction并没有实现isComplete方法.

Swift的类型推测是如此的健壮以至于它偶尔需要你必须显式输入指定的类型(在此类中是指定遵守的协议)

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    107779博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.1054s