Swift 字面量表达

什么是字面量:简洁明了的指出自己的类型并且能为变量赋值的值

// xiaoming  false  都是字面量
let name = "xiaoming"
let ok = false
// 字典 数组 使用字面量
let nums:Array = ["1","2","3"];
let dic = ["name":"xxx"];

Swift 提供了一组协议 使用字面量来表达特定的类型

  • 对于那些实现了字面量表达协议的类型,在提供字面量赋值的时候,就可以简单的按照协议方法中定义的规则
  • 通过赋值的方式将值表达为对应类型 ,这些协议包含了原生的字面量
  • 其实每一个字面量表达式内部都有一个初始化方法

//实现一个字面量

class Dog:ExpressibleByStringLiteral{
    
    let name : String
    typealias StringLiteralType = String
    
    required init(stringLiteral value: String) {
        
        self.name = value
    }
    
}

//通过字符串来初始化一个类
let d : Dog = "123"

print(d.name)

这也就说明了 为什么Dictionary和Array 通过字面量直接进行初始化

你可能感兴趣的:(Swift 字面量表达)