gpt4 book ai didi

function - typealias 泛型函数

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

作为一项学习练习,我正在尝试编写一个小型函数库。我的库中的许多函数都需要传入函数。我想为该函数“键入别名”,以便我的库的用户必须传入具有特定签名的函数。

我已经试过了:

typealias Callback = Result<AnyObject> -> ()

这种作品,但我想要 AnyObject部分是任何。不具体 AnyObject ,因为那实际上是某种真实类型(?)。我的Result枚举我基于这个 article关于 Swift 中的错误处理。这是一个通用枚举,所以这就是我想在我的函数签名中反射(reflect)的内容。

如果我删除 <AnyObject>部分我收到一条错误消息:

Reference to generic type 'Result' requires arguments in <...>

如果我只是为了 Result<T>我收到错误:

Use of undeclared type 'T'

据我所知,不可能对泛型进行类型别名。那么.. 有什么办法吗?

TLDR;

我有一堆函数,我想将特定签名的函数作为参数,在我的例子中:

(result: Result<T>) -> ()

我如何强制执行此操作?

最佳答案

Swift 4.1 支持泛型类型别名。您可以使用此功能为具有通用参数的函数提供名称。

您可能必须使用这样的声明:

typealias Callback<T> = (Result<T>) -> ()

关于function - typealias 泛型函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25963945/

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