加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Swift中,Int有一个带String的隐藏初始化器吗?

发布时间:2020-12-14 05:43:21 所属栏目:百科 来源:网络整理
导读:我试着查看用于Int的Swift API,我仍然不确定为什么这样做: var foo = Int("100") 我在文档中看到以下初始化器: init()init(_: Builtin.Word)init(_: Double)init(_: Float)init(_: Int)init(_: Int16)init(_: Int32)init(_: Int64)init(_: Int8)init(_: UI
我试着查看用于Int的Swift API,我仍然不确定为什么这样做:
var foo = Int("100")

我在文档中看到以下初始化器:

init()
init(_: Builtin.Word)
init(_: Double)
init(_: Float)
init(_: Int)
init(_: Int16)
init(_: Int32)
init(_: Int64)
init(_: Int8)
init(_: UInt)
init(_: UInt16)
init(_: UInt32)
init(_: UInt64)
init(_: UInt8)
init(_:radix:)
init(_builtinIntegerLiteral:)
init(bigEndian:)
init(bitPattern:)
init(integerLiteral:)
init(littleEndian:)
init(truncatingBitPattern: Int64)
init(truncatingBitPattern: UInt64)

但我没有看到上面的init(_:String).引擎盖下是否有一些自动化?

有一个
extension Int {
    /// Construct from an ASCII representation in the given `radix`.
    ///
    /// If `text` does not match the regular expression
    /// "[+-][0-9a-zA-Z]+",or the value it denotes in the given `radix`
    /// is not representable,the result is `nil`.
    public init?(_ text: String,radix: Int = default)
}

采用字符串和可选基数的扩展方法(默认为10):

var foo = Int("100") // Optional(100)
var bar = Int("100",radix: 2) // Optional(4)
var baz = Int("44",radix: 3) // nil

怎么会找到那个?使用来自的“技巧”
“Jump to definition” for methods without external parameter names,写相当于

var foo = Int.init("100")
//            ^^^^

然后cmd点击Xcode中的init

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读