gpt4 book ai didi

arrays - Swift 中带有可选值的数组初始值设定项速记

转载 作者:搜寻专家 更新时间:2023-10-31 08:27:58 24 4
gpt4 key购买 nike

我试图使用 repeatedValues 初始化器初始化一个包含可选值的数组,我惊讶地发现以下代码无法编译

let a: Int?[] = Int?[](count: 10, repeatedValue:nil)
// error - Value of Int?[]? not unwrapped; did you mean to use '!' or '?'?

有趣的是类型签名 Int?[]? ,例如一个可选的 Array可选 Int .这感觉像是一个错误,但也许我在语法上遗漏了一些东西。我查看了一些语言引用资料,但尚未找到答案。

更明确的Array<Int?>类型初始化器按预期工作

let b: Int?[] = Array<Int?>(count: 10, repeatedValue:nil)
// compiles fine

有没有其他人遇到过这个问题并能说明一些问题?

编辑

将额外的工作示例与非可选类型结合起来以突出失败

let c: Int[] = Int[](count: 10, repeatedValue:0)
// non-optional shorthand works fine

class D { var foo = 1 }
let d: D[] = D[](count:10, repeatedValue:D())
// custom class works fine using the shorthand too

enum E { case a, b, c, d, e }
let e: E[] = E[](count:10, repeatedValue:.e)
// enums work too

最佳答案

swift 3:

   let pageViews = [UIImageView?](repeating: nil, count: pageCount)

swift 2:

    let pageViews = [UIImageView?](count: pageCount, repeatedValue: nil)

关于arrays - Swift 中带有可选值的数组初始值设定项速记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24133283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com