簡體   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