gpt4 book ai didi

swift - Swift 字典的通用项目 getter

转载 作者:可可西里 更新时间:2023-11-01 00:52:11 27 4
gpt4 key购买 nike

假设我有一个 Dictionary<String, String>为此,我希望为实现 StringLiteralConvertible 的类型提供方便的 setter/getter 。 .

let items = ["Key 1": "Value 1", "Key 2": "Value 2"]

func get<T: StringLiteralConvertible>(key: String, _ defaultValue: T) -> T {
if let value = items[key] {
return T(stringLiteral: value) // BUG
}

return defaultValue
}

但是在有BUG注释的那一行放什么呢?

最佳答案

该行实际上是正确的,但上面的行应该更具体地说明类型值是什么。尝试:

func get<T: StringLiteralConvertible>(key: String, _ defaultValue: T) -> T {
if let value = items[key] as? T.StringLiteralType {
return T(stringLiteral: value)
}

return defaultValue
}

PS:您可能还想将 items 作为参数传递

关于swift - Swift 字典的通用项目 getter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34180370/

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