gpt4 book ai didi

arrays - 快速处理稀疏数组

转载 作者:可可西里 更新时间:2023-11-01 00:53:51 25 4
gpt4 key购买 nike

我正在尝试在 Swift 中创建一个稀疏数组。我不确定问题是出在我的声明中(未检测到语法错误)还是 beta 2 中的错误?

我正在尝试将 24 个类实例的数组声明为可选。然后我可以根据需要填充数组的插槽。这是声明:

var usage = WaterUsage?[](count:24, repeatedValue:nil)

这可以顺利通过 Xcode 6 beta 2 编译器。目的是最终得到一个包含 24 个“WaterUsage”类的数组,所有类都设置为 nil。

当我尝试设置数组元素时:

usage[hour] = usage

小时 < 24 我得到错误:

"WaterUsage doesn't have a member named subscript"

我也尝试过使用泛型,但这似乎也不起作用。

我发现在复杂数据结构中使用可选项的 Swift 语法有点晦涩难懂,可以在这里使用一些建议。

最佳答案

这种定义数组的方法是为您提供可选值的可选数组 (WaterUsage?[]?),您必须在使用前解包。我认为您只希望值是可选的:WaterUsage?[]。我能够做到这一点的一种方法是使用通用的 Array 语法:

var usage: WaterUsage?[] = Array<WaterUsage?>(count:24, repeatedValue:nil)
usage[hour] = something

另一种方法是强制展开初始声明的返回值。我不知道为什么,但是 WaterUsage?[]() 有一个可选的返回值。

var usage = (WaterUsage?[](count:24, repeatedValue:nil))!
usage[hour] = something

关于arrays - 快速处理稀疏数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24557601/

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