Swift不透明类型的整型不能直接赋值给整型。因为类型不匹配,A() 返回 Some Equatable, 所以把A()赋值给x时候需要进行类型转换
func A() -> some Equatable {
1
}
print(type(of: A())) //Output is Int
var x: Int = 0
//error: cannot assign value of type 'some Equatable' to type 'Int'
//类型不匹配所以需要添加 as!Int 进行转换
x = A() as! Int
print(x) //Output is 1
Swift不透明类型的整型不能直接赋值给整型。因为类型不匹配,A() 返回 Some Equatable, 所以把A()赋值给x时候需要进行类型转换
Refs
https://docs.swift.org/swift-book/LanguageGuide/OpaqueTypes.html
swift 的协议以及不透明类型