在我的应用程序中,我使用各种结构,应该基本上只是String子类,但String本身就是一个结构,因此无法对它进行子类化。例如,我有一个带有单个address
变量的电子邮件对象,然后计算变量,如isValid
或函数,如compose()
。问题是,当整个对象实际上应该是地址时,通过address
属性访问实际的电子邮件地址似乎很荒谬。Swift中的字符串子类解决方法
那么创建Email
对象的正确方法是什么?这是唯一的方法吗?或者有没有解决字符串的一种方法,以便我的电子邮件结构实际上是一个字符串,只是一些电子邮件特定的功能?
我想过这样做,但我有更多这样的对象。例如,我有一个地址对象表示一个物理地址(如位置),它有自己的isValid变量,它与电子邮件地址不同。这意味着我将不得不将它改成例如.isValidEmail和.isValidAddress,为String添加了很多方法,这看起来不正确。此外,自定义结构允许我将变量的类型限制为仅用于电子邮件,这意味着我可以进行各种检查以确保电子邮件始终是电子邮件,而字符串可以是任何字符串。 –
刚刚创建一个包含'String'值的结构时会出现什么问题?如果可能,子类化'String'会导致许多无意义的后果。 '字符串'有一大堆方法,电子邮件类型中没有业务存在。 (sub-stringing,上/下壳,可从整数初始化 – Alexander
你是什么意思通过包装字符串值? –