我有一个转换器类,其中T可以是一个可选类型。
class Converter<T>
{
init(){}
func convertVal(_ val: T) -> T
{
print("val: \(val)")
print(type(of: val))
print("val is nil: \(val == nil)")
return val
}
}
let firstStr: String? = nil
let converter = Converter<String?>()
var str = converter.convertVal(firstStr)
当我试图转换零值时:
打印:
val: nil
Optional<String>
val is nil: false
为什么打印nil
且条件val == nil
为false
?
答案 0 :(得分:2)
我认为您要做的是使year date category1 category2 client
函数的参数和返回类型为可选,convertVal
的类型为常规Converter
。
String
输出:
class Converter<T> {
init() {}
func convertVal(_ val: T?) -> T? {
print("val: \(val)")
print(type(of: val))
print("val is nil: \(val == nil)")
return val
}
}
let firstStr: String? = nil
let converter = Converter<String>()
var str = converter.convertVal(firstStr)