繁体   English   中英

不能对类型为“[Int]”的非可选值使用可选链

[英]Cannot use optional chaining on non-optional value of type '[Int]'

我试图通过仅选择数组中的三个数字之一来使我的代码在 Swift 4 中打印“Hello World”,并且我得到了标题中列出的错误。

func newFunc() {
    let employees = [1, 2, 3]?
    if employees == [1] {
        let printthis = "Hello World!"
        print(printthis)
    } else {
        print("Nothing here")
    }
}

newFunc()

你不能申请“?” 对象/实例可选。 您可以通过放置“?”来将对象定义为 Optional 在类型上:

let employees: [Int]? = [1, 2, 3]

您的员工数组现在将是一个 Optional Int 数组。 似乎您不需要可选项,因此您可以跳过“?” 从定义

要检查数组是否包含值,您可以通过以下方式检查它:

if employees.contains(1) {
  let printthis = "Hello World!"
      print(printthis)
} else {
    print("Nothing here")
}

问题就在这里

let employees = [1, 2, 3]?

应该是这样的,不能追加? 对于那个声明

let employees = [1, 2, 3]

编码

let employees = [1, 2, 3]?

不是有效的 Swift。

如果要创建可选的整数数组,请使用

let employees: [Int]? = [1, 2, 3]

但是,您不太可能想要一个可选的 let 常量。 去掉问号可能更好:

let employees = [1, 2, 3]

如果您真的希望员工成为可选数组,并且您真的希望将可选说明符放在声明的右侧,您可以这样做:

let employees = Optional([1, 2, 3])

但是我又不确定为什么你想要一个可选的let常量作为实例变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM