gpt4 book ai didi

swift - 声明一个只能包含 ASCII 字符的 Swift 字符类型?

转载 作者:行者123 更新时间:2023-11-28 05:38:31 25 4
gpt4 key购买 nike

Swift 的 Character 数据类型是一个非常广泛的集合,我有一个用例,我需要声明一个只能保存 ascii 字符的变量。该类型不能接受 ascii 以外的字符。

我们是否有适合我的用例的任何其他内置数据类型?

或者我需要编写自定义解决方案吗?

如果需要定制解决方案,实现它的最佳方法是什么?

最佳答案

正如问题评论中所指出的,似乎无法检查编译时间。


运行时解决方案可以是:

您可以检查 Character<#Character#>.isASCII 的 Ascii ,然后您可以创建一个自定义类,该类仅在满足条件时才存储一个值。

struct CustomASCIIClass {

private var storedValue : Character? = nil

var value : Character? {
get {
return self.storedValue ?? nil
}

set (newValue) {
if (newValue?.isASCII ?? false) {
self.storedValue = newValue
} else {
// handle not possible value, throw something or make the variable to have nil value.
print("invalid: ", newValue)
}
}
}
}

用法:

var a = CustomASCIIClass()
a.value = Character("A")
print(a.value) // Optional("A")

var b = CustomASCIIClass()
b.value = Character("😎")
print(b.value) // nil

关于swift - 声明一个只能包含 ASCII 字符的 Swift 字符类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57771238/

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