不能在类型' [Int]'的非可选值上使用可选链接。

时间:2018-03-07 19:48:46

标签: swift int func

我正在尝试打印我的代码" Hello World"在Swift 4中,只选择数组中三个数字中的一个,我得到标题中列出的错误。

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

newFunc()

3 个答案:

答案 0 :(得分:0)

问题出在这里

let employees = [1, 2, 3]?

应该是这样的,你不能为该声明附加?

let employees = [1, 2, 3]

答案 1 :(得分:0)

代码

let employees = [1, 2, 3]?

无效Swift。

如果要创建可选的Ints阵列,请使用

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

但是,你不太可能想要一个可选的let常量。最好摆脱问号:

let employees = [1, 2, 3]

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

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

但我再次不确定为什么你想要一个可选的let常量作为实例var。

答案 2 :(得分:0)

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

/apples
/pears
/oranges

你的雇员数组现在将是一个Optional Int数组。您似乎不需要可选项,因此您可以跳过"?"来自定义

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

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