gpt4 book ai didi

generics - 将通用类型声明为可调用

转载 作者:行者123 更新时间:2023-11-28 10:26:01 25 4
gpt4 key购买 nike

我想做这样的事情:

class Foo<BlockT> {
var blocks = Array<BlockT>
func callTheBlocks() {
for block in blocks {
block()
}
}
}

然而,这引发了

Invalid use of '()' to call a value of non-function type 'BlockT'.

如何声明 BlockT 是可调用的,或者是“函数类型”?

最佳答案

对于没有参数且没有返回值的 block /闭包,您可以使用内置的

typealias dispatch_block_t = () -> Void

例子:

class Foo {
var blocks = Array<dispatch_block_t>()
func callTheBlocks() {
for block in blocks {
block()
}
}
}

let foo = Foo()
foo.blocks.append { println("Foo") }
foo.blocks.append { println("Bar") }
foo.callTheBlocks()

关于generics - 将通用类型声明为可调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25470227/

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