swift - 无法在 Xcode 7.3.1 上使用类型 'Result<Any>' 的参数列表调用类型 '(int,int)' 的初始值设定项

标签 swift generics tuples xcode7.3

在 Xcode 7.3.1 的 Playground 上尝试此操作会出现编译错误:

Cannot invoke initializer for type 'Result<Any>' with an argument list of type '(int,int)' 

在 Xcode 7.3 上它运行良好。这是代码:

import UIKit
public enum Result<T> {
    case Success(T)
    case Failure(ErrorType)
    public init(_ value: T) {
        self = .Success(value)
    }
    public init(_ error: ErrorType) {
        self = .Failure(error)
    }
}
func handleResult(result: Result<Any>) {
    switch result {
    case .Success(let value):
        print(value)
    case .Failure(let error):
        print(error)
    }
}
let b = Result<Any>((1,2))    //This doesn't work on Xcode 7.3.1
handleResult(b)

有什么想法吗? Xcode 7.3.1编译器变得更严格了吗?

最佳答案

不确定编译器发生了什么变化,但恕我直言,您应该删除显式的 Result<Any>无论如何并保持通用:

func handleResult<T>(result: Result<T>) {
    switch result {
    case .Success(let value):
        print(value)
    case .Failure(let error):
        print(error)
    }
}

let b = Result((1,2))
handleResult(b)

关于swift - 无法在 Xcode 7.3.1 上使用类型 'Result<Any>' 的参数列表调用类型 '(int,int)' 的初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37133604/

相关文章:

ios - 如何使用 UIActivityViewController 共享经度和纬度

java - 将对象转换为 <T> 类型

java - 显式调用泛型方法

python - 循环遍历元组的第二个参数以获得条件并返回元组的第一个参数的有效方法

list - 对列表按顺序创建元组

ios - 检查 Swift 2 中的空字符串

ios - 使用请求正文批量上传图片

ios - 解析 Koloda 库上的数据 - 无法在 View 中显示

java - 通过按位运算确定返回类型

postgresql - 如何在 PostgreSQL 中存储多个元组数组