gpt4 book ai didi

ios - Swift 可选模板类型意外参数行为

转载 作者:搜寻专家 更新时间:2023-11-01 07:09:45 25 4
gpt4 key购买 nike

我有一个转换器类,其中 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)

当我试图转换一个 nil 值时:

正在打印:

val: nil
Optional<String>
val is nil: false

为什么打印nil 并且条件val == nilfalse

最佳答案

我认为您想要做的是使 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)

输出:

val: nil
Optional<String>
val is nil: true

关于ios - Swift 可选模板类型意外参数行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45661621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com