为什么 Swift 中的数字文字可以解释为 NSNumber?

Isa*_* To 3 nsnumber swift

为什么下面的代码可以在 Swift 中实现?

import Foundation
let n: NSNumber = 35.5
Run Code Online (Sandbox Code Playgroud)

NSNumber 是 Foundation 模块中定义的类型,在 Swift 中并未定义为原生类型。如何将 的字面值35.5解释为 NSNumber 的值?

Mar*_*n R 6

NSNumber 符合ExpressibleByBooleanLiteral,ExpressibleByFloatLiteralExpressibleByIntegerLiteral协议,这意味着它可以从布尔值、浮点值或整数文字初始化:

let n1: NSNumber = false
let n2: NSNumber = 12.34
let n3: NSNumber = 123
Run Code Online (Sandbox Code Playgroud)