代码之家  ›  专栏  ›  技术社区  ›  stevenpcurtis

如果String.Index未定义,则快速查找[关闭]

  •  -6
  • stevenpcurtis  · 技术社区  · 7 年前

    我想知道我的变量中点是否未定义。不幸的是,下面的代码无法编译

    let midPoint : String.Index
    if (typeof midPoint === "undefined" )
        {print ("undefined")}
    

    类型

    类型

    1 回复  |  直到 7 年前
        1
  •  1
  •   Marcel    7 年前

    你那里的代码是Javascript,它不会编译。斯威夫特没有 undefined . 斯威夫特的确有选择权(由 ?

    let midPoint: String.Index? = nil
    if midPoint == nil {
      print ("midPoint is nil")
    }
    

    Swift不允许使用未定义的值,因此必须将midPoint设置为 nil (或一个值)。

    如果你得到的值不是一个选项,你就不必测试 ,因为这是不可能的 . 例如:

    let index = "Hello world".endIndex
    

    在这里, endIndex 属于类型 String.Index ,所以你知道总会有一个值。

    let index = "Hello world".firstIndex(of "t")
    

    String.Index? ,可选。你可以这样做:

    if let index = index {
       // you can use index here
    }