Swift 中的 Optional2024 年 8 月 29 日 | 4 分钟阅读 Swift 可选类型是 Swift 编码的基础部分。可选类型用于将好代码与坏代码分开并防止崩溃。每种编程语言都有一些预防措施来避免崩溃。Swift 在这方面更实用,并且可选类型使您的代码免于崩溃。 声明每当您使用可选值时,即使您从未键入过单词 Optional,也会使用可选类型。Swift 的类型系统通常显示包装类型的名称以及问号 (?),而不是显示完整的类型名称。 例如,如果一个变量的类型为 Int?,它与 Optional 相同,只是另一种写法 请看以下示例。 在此,以下代码示例中 shortForm 和 longForm 的类型相同 Optional 要么不包含值,要么包含某个值。Optional 允许存储 nil 作为值的缺失。Optional 是一个具有两种情况的通用枚举
示例输出 true 上述程序中的问号 (?) 表示它是一个可选变量。 如果您在变量声明的末尾看到一个问号,那么它肯定是一个可选变量,并且它可能包含也可能不包含一个值。 因此,在程序的某些部分,您不知道变量是否存在值,请将其标记为可选。 现在,看看这个例子 这里我们尝试打印变量 'numberOfStudents' 的值。 在这里,变量末尾的感叹号 (!) 用于解包该值。 但是,如果尝试执行代码,代码将会崩溃。 这是因为,您只是强制解包一个不包含值的可选变量。 如果变量中没有值,程序将崩溃。 为变量设置一个值 如果您在强制解包值之前为变量设置一个值,则代码不会崩溃,但这并不是一个好的编码习惯,而且是滥用可选变量。 输出 30 您可以在强制解包可选变量之前进行 nil 检查。 例如 现在,您的程序不会崩溃,因为您仅在进行 nil 检查后才强制解包可选变量。 上述方法将检查可选变量“numberOfStudents”是否包含某个值。 如果存在,它将被复制到一个名为 studentCount 的常量中,然后才会执行代码块。 强制解包当您将变量定义为可选变量时,要从此变量中获取值,您必须解包它。 强制解包是将感叹号放在变量末尾的过程。 让我们检查一个例子来弄清楚。 示例:(在应用解包之前)输出:当您执行上述代码时,它将给出以下输出 Optional("Hello World") 示例:(在应用解包之后)现在,我们应用解包来获得变量的正确值。 输出 Hello World 自动解包自动解包提供了一种方法,其中使用感叹号而不是问号来声明可选变量。 通过这种方式,变量将被自动解包,您无需在变量末尾使用任何进一步的感叹号来获取分配的值。 让我们看一个示例。 示例输出 Hello World Swift 可选绑定可选绑定用于找出可选变量是否包含一个值,如果包含,则使该值可用作临时常量或变量。 您可以使用任何可选绑定控制结构,包括 if let、guard let 等。 让我们举个例子来看看 if 语句的可选绑定 示例输出 The value of my string is - Hello world 下一个主题Swift 可选链 |
我们请求您订阅我们的新闻通讯以获取最新更新。