对Swift相对较新,并且在最简单的事情上挣扎。我希望预先分配一组设置为默认值的结构。只要struct不嵌套在另一个类型中,这就可以工作。有任何想法吗?这是一个简化的例子:
struct PlainStruct
{
var yo:Float = 0.0
}
class WrapperClass
{
struct NestedStruct
{
var yo:Float = 0.0
}
}
// Works just fine
var a = [PlainStruct](count:2, repeatedValue:PlainStruct())
// Error - Cannot call value of non-function type '[WrapperClass.NestedStruct.Type]'
var b = [WrapperClass.NestedStruct](count:2, repeatedValue:WrapperClass.NestedStruct())
由于
答案 0 :(得分:4)
如果您创建了一个typealias,它会起作用。例如:
struct PlainStruct
{
var yo:Float = 0.0
}
class WrapperClass
{
struct NestedStruct
{
var yo:Float = 0.0
}
}
typealias Nested = WrapperClass.NestedStruct
var b = [Nested](count:2, repeatedValue:WrapperClass.NestedStruct())
至于为什么我们必须这样做...我不想在没有证据的情况下说这个但是我认为它是编译器错误,我相信我们应该能够使用您的原始版本。