gpt4 book ai didi

swift - 如何在 Swift 3.1 中使用字符下标?

转载 作者:行者123 更新时间:2023-11-28 06:16:32 25 4
gpt4 key购买 nike

我是 Swift 的新手。我发现了一些奇怪的下标匹配行为:

struct SubscriptTest {
subscript(character: Character) -> String {
return "Character: \(character)"
}

subscript(string: String) -> String {
return "String: \(string)"
}

subscript(int: Int) -> String {
return "Int: \(int)"
}
}

let test = SubscriptTest()
test["abc"] // String: abc
test[13] // Int: 13
test["🐧"] // String: 🐧 (surprisingly)

我认为最后一个测试会匹配我的 Character 下标,而不是 String 下标。我试图交换下标声明的顺序,认为可能正在使用最后一个匹配的。它没有改变任何东西,String 下标仍然用于单个 Character

我知道我可以只使用 String 下标并检查字符数,但我的问题的根源是好奇。

为什么 Character 下标在这里从未匹配过?

最佳答案

"🐧" 可以是 String 字面量和 Character 字面量,并且默认为 String(如果两者在上下文中都有效)。与

test["🐧" as Character] // Character: 🐧

let c: Character = "🐧"
test[c] // Character: 🐧

你得到了预期的结果。

关于swift - 如何在 Swift 3.1 中使用字符下标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44967636/

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