gpt4 book ai didi

generics - Swift:在函数失败时向下转换为通用类型

转载 作者:搜寻专家 更新时间:2023-11-01 05:31:30 24 4
gpt4 key购买 nike

我有一个通用函数,它接受任何对象的值和类型为 T 的输入输出参数。我想通过将值向下转换为类型 T 将输入输出参数设置为任何对象的值。

func genericFunction<T>(value:AnyObject, inout object:T) {

if let castedValue = value as? T {
object = castedValue
}
}

当我调用我的函数时,对象的值未设置,因为向下转型失败。

var object:String = "oldValue"
var newValue:String = "newValue"

genericFunction(newValue, &object)
println(object) // prints oldValue

最佳答案

通过将 AnyObject 更改为“Reflectable”解决。还与“任何”合作。 String 实际上并不符合 AnyObject。

func genericFunction<T>(value:Any, inout object:T) {
if let castedValue = value as? T {
object = castedValue
}
}

编辑:Any 是我想要使用的类型,因为 Reflectable 旨在用于反射,而 String 恰好符合它。

关于generics - Swift:在函数失败时向下转换为通用类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24072482/

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