swift - 为什么它不能转换类型的返回表达式?

标签 swift generics

我尝试在 test2 方法中返回常量 result 但编译器抛出错误。为什么?

public enum TestResult<Value> {
    case success(Value)
    case failure(Error)
}

struct TestModel {
}

class Test {
    func test1() -> TestResult<Any> {
        let obj = TestModel()
        return TestResult.success(obj)
    }

    func test2() -> TestResult<Any> {
        let obj = TestModel()
        let result = TestResult.success(obj)
        return result
    }
}

最佳答案

您需要将TestModel 转换为Any:

func test2() -> TestResult<Any> {
    let obj: Any = TestModel()
    let result = TestResult.success(obj)
    return result
}

关于swift - 为什么它不能转换类型的返回表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54732802/

相关文章:

ios - 完整深入的 switch 语句故障

ios - SWIFT:使用 UIWebkit View

java - 为什么当使用不同的参数类型调用时,Objects.equals 的类型安全包装器不会失败?

swift - 类型删除 : Have I missed Anything?

swift - 如何为字典的键添加额外的值?

ios - 当应用程序进入前台但不知道在 swift 4 中关闭此 View Controller 时显示 View Controller

Swift UISearchController 在核心数据项目中连接,应用程序运行,但搜索不更新

Java:添加到集合 map

c# - 如何将这些通用方法调用从 C# 转换为 Java

java - Intellij 升级时出现问题