是否曾经需要一个字符串,但又希望它不是 String
类型? 例如,如果您获取了一些不安全的用户输入,并且永远不想在未经清理的情况下意外地将其放入 SQL 查询中? 或者,如果您获得了本地 ID,并且不想将其与远程 ID 混淆?
SpecialString
正是为了解决这个问题而设计的。 除了名称之外,它的一切都像一个字符串。 然而,它受到 Swift 强大的类型系统的保护,因此永远不会被误认为是其他东西。
此包包含一些预制的特殊字符串,用于常见的用途。
UnsafeUserInput
- 不安全的用户输入。 在安全使用之前,必须对其进行清理。SanitizedUserInput
- 经过某些处理,现在可以认为是安全的用户输入。Password
- 密码。 永远不能将其序列化为纯文本字符串。标识符通常是字符串,因此它们是使用 SpecialString
的完美用例! 但是,由于每个标识符本质上都与它标识的服务相关联,因此该包未定义任何标识符。 相反,您应该为每个远程服务定义一个新的特殊类型,例如 LocalImageIdentifier
,GoogleDriveItemIdentifier
或 BrowserSessionIdentifier
。
此包还包含方便的协议 EssentiallyAString
,它可以帮助您创建本质上是字符串的类型。 这大大提高了 SpecialString
的人体工程学,让您可以以使用 String
的大多数方式使用它。
欢迎将 EssentiallyAString
用于其他用途!