繁体   English   中英

推断完成块中的通用类型

Infer Generic Type In Completion Block

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个功能:

static func requestArray<T>(completion: @escaping (_ result: Result<[T], Error>) -> ()) {

}

像这样被称为:

MyClass.requestArray() { result in
    switch result {
        case .success(let array):
            break
        case .failure(let error):
            break
        }
}

但是,这不起作用,因为它无法推断出通用类型T。如何更改我的代码,使其能够识别T应该是什么类型? (假设array的类型应为[String]

2 个回复

如果将API将类型移动到签名中,通常会更加方便,以简化闭包:

static func requestArray<T>(of: T.Type, completion: @escaping (_ result: Result<[T], Error>) -> ()) { }

通过这种方式完成后,调用将变为:

MyClass.requestArray(of: String.self) { result in
    switch result {
        case .success(let array):
            break
        case .failure(let error):
            break
        }
}

T是返回类型时,此方法也很好用。 有关Codeable的一个很好的例子,请参见Codeable ,如decode(_;from:)

调用函数时,已在完成处理程序中显式声明了result类型:

MyClass.requestArray() { (result: Result<[String], Error>) in
    switch result {
    case .success(let array):
        break
    case .failure(let error):
        break
    }
}
1 无法在完成处理程序中推断通用类型

我正在尝试定义泛型类型函数,但是当我尝试调用此函数时,无法得到Generic parameter 'T' could not be inferred 这是我的代码 然后我使用 但这给上面的编译器错误。 值得一提的是BalanceListConstructable 。 我 ...

4 IOS swift中的完成块

我正在尝试将一个可空的完成块添加到自定义函数 当我试图调用上面的函数时,如下所示 完成块始终为零。 ...

2015-11-10 09:47:17 3 1750   ios/ swift
5 通用类型的类型推断

我试图做这样的事情。 关键是我有一些Interface ,然后是一个Goo类,该类具有扩展该接口的通用类型。 我想创建一个Foo类,该类采用扩展此通用Goo通用类型。 问题是Goo需要一个通用参数,该参数我曾尝试使用T["props"] ,但是语法检查器显示该类型不满足接口的错误。 ...

6 通用Scala函数中类型推断失败

考虑一个对集合distinctBy操作的简单函数,该函数类似于distinct删除“重复项”(不一定是实际重复项): 现在考虑使用一个类: 天真的使用此功能会失败: 但是如果我帮助类型推断器,则可以: 据我所知,由于该函数是在第二个参数列表中给出的,因此类型推断器 ...

7 在Haskell中,推断类型不够通用

我正在编写一个程序,它接受一个元素列表(这样的列表必须采用整数和小数)并给出一个减少的总和列表: 结果列表的第一个元素是整个列表的总和 第二个是没有头的列表的总和 第三个是没有头部和第二个元素的列表的总和 等等。 到目前为止我的结果是: 我收到错 ...

2014-09-23 20:25:57 1 482   haskell
8 Scala中通用策略模式的类型推断

我想完成什么 我想利用策略模式,而策略类具有类型参数。 代码是什么样的 假设我具有以下通用抽象策略类: 我现在得出两个具体的策略: 现在,我们有一个使用该策略的类: 如预期的那样,我现在可以实例化没有显式类型的新worker: 问题 但是, ...

9 无法从集合中推断出通用类型

为什么不可能这样做: 上面的代码无法编译: 无法解析符号项目 但这有效: 编辑 我正在编辑OP,以更全面地了解问题。 我们正在遇到由多个存储库产生的实体框架Db Context的一些问题。 当前,我们访问以下存储库: 由于产品和帐户之间存在关系,EF会抱怨 ...

10 在字典属性中推断通用类型

我有一个通用接口,我希望一个属性只包含来自另一个属性的键,并且具有相同的类型.... 这很好,我以前做了很多次类似的事情......基本上我想要它推断出T是基于我传给propA的东西。 不过这是我的问题,我有一个包含许多IMyInterface类型的字典.... 这是我的问 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM