Swift字面量(Literal) - 为自定义类添加字面量

let str = "str"

像string的初始化方式,  "str" 则为字面量,swift中自带的绝大部分类型,都支持直接通过字面量进行初始化 

 这种使用字面量的初始化方式非常方便,那么如何为自己的类添加字面量的初始化方式呢?

以MyUrl类为例, 有url属性, 若按照传统的初始化方式则如下:

class MyUrl{
   var url:URL
   init(string: String){
      self.url = URL(string: string)
   }
} 

我们如果想快速字面量进行快速初始化的话,只需MyUrl实现ExpressibleByStringLiteral 协议,实现初始化构造器 :

extension myUrl:ExpressibleByStringLiteral {
    init(stringLiteral value: String) {
        self.url = URL(string: value)
    }
}

此时初始化只需要:

let url:myUrl = "https://www.baidu.com"
print(url.url) // "https://www.baidu.com"

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值