Skip to Content
Head First Kotlin程序设计
book

Head First Kotlin程序设计

by Dawn Griffiths, David Griffiths
August 2020
Intermediate to advanced
483 pages
11h 24m
Chinese
China Machine Press
Content preview from Head First Kotlin程序设计
226
8
链式安全调用
使用安全调用的另一个优点是你可以将它们链式地组装起来,
从而形成强大又简练的表达式。
假设你有一个名为
MyWolf
,它
Wolf?
类型的属性
w
这是该类的定义:
class MyWolf {
var w: Wolf? = Wolf()
}
又假设你有一个
MyWolf?
型的变量名为
myWolf
比如:
var myWolf: MyWolf? = MyWolf()
如果你想要获得
myWolf
量中
Wolf
对象的
hunger
,你
以采用这样的写法:
myWolf?.w?.hunger
这就像在说“如果
myWolf
或者
w
空,则返回空值,否则返回
w
hu
nger
属性值”。该表达式返回
hunger
,当
myWolf
w
。如
myWolf
w
有一个为空,则整个表
达式的计算结果为空。
系统判断
myWolf
不为空
如果
myWolf
为空
,那么整个表达式的结果为空。如果
myWolf
不为空
(如例子所示),系统继续检查表达式的下一部分。
1
myWolf?.w?.hunger
引用
myWolf
var MyWolf?
MyWolf
myWolf?.w?.hunger
求解安全调用链时发生了什么
拆解系统求解安全调用链的过程。
如果
myWolf
w
都不为空
取得
hunger
否则为空
链式
空值异常
你现在的位置 4
227
让故事继续
系统判断
myWolf
w
的属性不为空
假设
myWolf
为空,继续移动到表达式的下一部分
w?
如果
w
为空,整个表达式的值为空。例如在这个例子中,如果 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

面向对象的思考过程(原书第5版)

面向对象的思考过程(原书第5版)

马特 魏斯费尔德
GraphQL 学习指南

GraphQL 学习指南

Eve Porcello, Alex Banks
前端架构设计

前端架构设计

Micah Godbolt

Publisher Resources

ISBN: 9787111662358