【问题标题】:Swift: How I can partially apply generic function?斯威夫特:如何部分应用泛型函数?
【发布时间】:2021-10-20 13:35:44
【问题描述】:

我有一些泛型函数,我需要获得具有特定泛型类型的泛型函数的链接。

// my generic function
func messageResult<M: SwiftProtobuf.Message>(_ dto: M?) {
    result(try? dto?.serializedData())
}

// then i try get link to the function with a specific generic type 
// but i throw error
let dtoResult = messageResult<Dto.OpenResult>

错误信息:'&gt;' is not a postfix unary operator

ide 突出显示:let dtoResult = messageResult&lt;Dto.OpenResult????&gt;

怎样才能写得好?

【问题讨论】:

    标签: swift generics


    【解决方案1】:

    你可以通过类型注解dtoResult来指定泛型参数

    let dtoResult: (Dto.OpenResult) -> () = messageResult
    

    【讨论】:

    • 或者,let dtoResult = messageResult as (Dto.OpenResult) -&gt; ()。 IDK哪个更好
    • @Alexander 我更喜欢明确设置结果类型
    猜你喜欢
    • 1970-01-01
    • 2017-07-22
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 2016-02-08
    • 2017-11-13
    相关资源
    最近更新 更多