16.2 Swift可选链

2023-12-19 06:48
文章标签 swift 16.2 可选链

本文主要是介绍16.2 Swift可选链,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        /**

         16.2-可选链介绍

         */

        

        class Person  {

            var name = ""

            func whoami() -> String {

                print("My name is \(name)")

                return name

            }

            

            init(name: String) {

                self.name = name

            }

        }

        

        var p0: Person?

        

        var p1: Person = Person.init(name: "Tom")

        p1.name = "zhangsan"

        p1.whoami()

        

        

        /**

         可选链跟我们的可选类型有着直接的关系。

         那么到底什么是可选链呢?

         其实就是通过可选类型的变量来调用相应的属性或者方法等。

         */

        

        

        // 通过可选类型来调用相应的属性或者方法等。

        p0?.name = "Lisi"

        p0?.whoami()

        

        // 强制解包,不要直接这样子,不安全

//        p0!.name = "Lisi"

        

        

        // 这样子就安全了,这就叫隐式解包

        if let t: Person = p0 {

            t.name = "Lisi"

            t.whoami()

        }

        

        

        // 也可以这么来判断

        if p0 != nil {

            p0!.name = "Lisi"

            p0!.whoami()

        }

        

        

//        p0 = p1

        

        

        /**

         可选链的方式, 如果p0没有值,那么可选链会失效,不会崩溃,所以是安全的

         判断p0有值,则调用,没有值就不调用

         */

        p0?.name = "Lisi"

        p0?.whoami()

        

        


这篇关于16.2 Swift可选链的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/511259

相关文章

Swift知识点---RxSwift学习

1. 什么是RxSwift RxSwift是Swift函数响应式编程的一个开源库,由Github的ReactiveX组织开发、维护 RxSwift的目的是:让数据/事件流 和 异步任务能够更方便的序列化处理,能够使用Swift进行响应式编程 RxSwift本质上还是观察者模式,并且是一个响应式的,并且可以序列化的 观察者模式 观察者模式包括:KVO、通知等 爸爸妈妈照看观察宝宝 其中,

王立平-- Swift

Swift是供iOS和OS X应用编程的新编程语言,基于C和Objective-C,而却没有C的一些兼容约束。Swift采用了安全的编程模式和添加现代的功能来是的编程更加简单、灵活和有趣。界面则基于广受人民群众爱戴的Cocoa和Cocoa Touch框架,展示了软件开发的新方向。     Swift已经存在了多年。Apple基于已有的编译器、调试器、框架作为其基础架构。通过ARC(Au

The `XXXUITests [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build......

出现的警告: [!] The `ColorInHeartUITests [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-ColorInHeart-ColorInHeartUITests/Po

swift快捷键大全

1. 文件 CMD + N: 新文件 CMD + SHIFT + N: 新项目 CMD + O: 打开 CMD + S: 保存 CMD + SHIFT + S: 另存为 CMD + W: 关闭窗口 CMD + SHIFT + W: 关闭文件 2. 编辑 CMD + [: 左缩进 CMD + ]: 右缩进 CMD + CTRL + LEFT: 折叠 CMD + CTRL + RIGHT:

自学Swift之打印输出

所有编程语言都有的函数打印输出: print()         // 不换行输出 println()      // 换行输出       print 和 println 函数可以直接打印基本类型 var num = 10 println("hello " + (String)num)   // 方式1: 其他类型同String输出的时候需要强转 printl

Swift项目#if DEBUG不生效

在新建的iOS项目中 代码里使用#if DEBUG不生效 解决办法: 在Xcode中给项目添加Debug标识符 点击“Build Setting”搜素Swift Compiler - CustomFlags打开Active Compilation Condition添加Debug标记为“DEBUG”

Swift 3.0 学习 -- 大写和小写字符串(Uppercase and Lowercase Strings)

在swift2.0的时候,您可以通过字符串的uppercaseString和lowercaseString属性来访问大写/小写版本的字符串。如下:

Swift 3.0 学习 -- 计算字符数量 (Counting Characters)

在swift2.0的时候,可以通过调用全局countElements函数,并将字符串作为参数进行传递,可以获取该字符串的字符数量。如下: let unusualMenagerie = "Koala, Snail, Penguin, Dromedary"print("unusualMenagerie has \(countElements(unusualMenagerie)) charact

swift 中“?”和“!”区别以及相关用法

最近也在学习swift的只是,已经是学完了闭包的用法,但回头想想之前学的一些知识感觉又望的差不多了。现在自己总结一些swift中?、!和as的相关用法。废话不多说了直接来吧! 一、swift语言使用var定义变量,但和别的语言不同,swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用之前不进行初始化的就会报错:           其

Module compiled with Swift 版本号 cannot be imported by the Swift 版本号 compiler

今天把xcode升级到12.5最新版,然后编译出现下面错误。。。记录下 XCTestWD:Module compiled with Swift 5.3.1 cannot be imported by the Swift 5.4.2 compiler: /Users/liyinchi/TestTool/node-v12.18.3-darwin-x64/lib/node_modules/app-in