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

Swift如何打印可选字符串[duplicate]

  •  -2
  • breakline  · 技术社区  · 6 年前

    可能是一个非常基本的问题,但是如果没有很多额外的代码,基本上没有找到一个好的答案:

    var item: String?
    print(item) //works as expected
    print("Item: "+item) //compile error
    

    3 回复  |  直到 6 年前
        1
  •  3
  •   Bhavin Kansagara    6 年前

    你可以这样做

    print("Item: \(item)")
    

    print("Item: \(item!)")
    

    如果在其他情况下,您不确定值是否存在,那么可以使用if let

    if let item = item {
        print("Item: \(item)")
    }
    

    希望有帮助

        2
  •  1
  •   Sam    6 年前

    string interpolation .

    您有4个选项可用于实际展开可选文件:

    1. 核对 nil ,如果是,则强制展开。

      if optional != nil {
          print(optional!)
      }
      
    2. if-let guard-let (可选绑定)。这将检查可选项是否为非可选项- ,如果是,则在 if

      if let nonOptional = optional {
          print(nonOptional)
      }
      
    3. 强制展开。如果您的可选项不是 ,但如果是,则会崩溃

      print(optional!)
      
    4. 默认值。如果变量的值不是- ,或提供的 默认值 如果是的话

      print(optional ?? "Optional was nil!")
      

    print("Item: \(item ?? "Item was nil!")")
    

    if let item = item {
        print("Item: \(item)")
    } else {
        print("Item was nil!")
    }
    

    记住你不需要 else 如果您不想打印 item .

        3
  •  0
  •   VishalPethani    6 年前

    试试下面这行

    if let item = item {
        print(String.init(format: "Item: %@", item))
    }
    

    if let item = item {
       print("Item: \(item)") 
    }