gpt4 book ai didi

types - void 类型的变量

转载 作者:IT王子 更新时间:2023-10-29 05:27:07 25 4
gpt4 key购买 nike

所以我知道 Void 用于指示函数不获取或返回值。在 Swift 中,Void 实际上是空元组 () 的类型别名。

有趣的是(在 Beta 6 中),您甚至可以声明 Void 类型的变量:

var x: Void
println(x)
x = test()

func test() {}

这些说法都是合法的。 println() 打印“()”。

到目前为止,我想不出这还能用来干什么。为什么需要一个不能保存任何值的变量?有谁知道它的实际用途,还是这只是 Swift 的怪癖之一?

最佳答案

我遇到了一个实际示例,它在处理泛型时很有用。我有一个通用类,它围绕异步任务创建一个包装器。该类的方法之一允许发布结果。

将其分解为一个简化的示例:

class Foo<T>  {

var x : T?

func finishWith(result:T) {
x = result
// do more stuff here as a side effect of posting the result
}
}

问题是您是否需要 Void 结果,即

var foo = Foo<Void>()

如何调用finishWith:result方法?

您可以创建一个值为 void 的变量或使用 '()' 作为字面值 void 值:

foo.finishWith(result: ())

关于types - void 类型的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25486200/

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