[swift 进阶]读书笔记-第七章:字符串 C7P3_P4 简单的正则表达式匹配器_ExpressibleByStringLiteral

字符串

7.3 简单的正则表达式匹配器。

7.4 ExpressibleByStringLiteral

这一节主要是用一个Demo来证明字符串的切片也是字符串这一点是多么的有用!

然鹅。。。swift 3.2后废弃了Characters,我还能怎么样。。 我写半天没啥用。。

我找两个有用的知识点写写啊。
刚刚仔细研读了半天,发现也没啥知识点。。 溜了溜了。。

下面是的是7.4中的一些知识点:

知识点1:String(“abc”) 和 “abc”是不同的。“abc”是字符串字面量

什么叫字面量?
let aBool = true
let aString = “abc”
let aNumber = 3

这种不用定义类型 而直接知道类型的就是字面量。
我们可以通过BooleanLiteralConvertible协议来写自己的Bool类型。类似的String Array 都有对应的方法。具体实现很简单。不赘述。大概知道有这个用法。需要的时候查资料就行。

知识点2: 关于ExpressibleByStringLiteral的骚操作

ExpressibleByStringLiteral有什么用?
通过字面意思(字符串)实例化指定类
在实际开发中,我们需要创建一个URL应该如下

let urls = URL(string: "https://www.liaoworking.com")

现在我们可以通过ExpressibleByStringLiteral 来用一种意想不到的方式去创建一个URL

extension URL: ExpressibleByStringLiteral {

public init(stringLiteral value: String) {
        guard let url = URL(string: "\(value)") else {
        preconditionFailure("This url: \(value) is not invalid")
    }
    self = url
}

下一次当你创建URL的时候可以这样 ,有没有狂拽炫酷吊炸天😄

let url: URL = "https://www.liaoworking.com"

不过在实际开发中当然不建议这样去用啦~ 阅读成本太高。
你信不信你的工友拿手机抡你哈哈。

今天是圣诞夜🎄,各位swift路上的工友,圣诞快乐。

文章源文件地址,大家如果有更好的想法和观点欢迎交流

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。