Ellen Spertus
11/07/2019, 8:20 PMreportError()
to be called if the value preceding let
is `null`:
store.state.selectedTab?.content?.url.let {
doSomething(it)
} ?: run {
reportError("Unable to get URL to send")
}
Assume that both doSomething()
and reportError()
are void.Shawn
11/07/2019, 8:21 PMurl
, why not just use if/else?Ellen Spertus
11/07/2019, 8:21 PMit
.Anastasia Finogenova
11/07/2019, 8:22 PMEllen Spertus
11/07/2019, 8:22 PMurl
isn’t nullable, but selectedTab
and content
are.Luke
11/07/2019, 8:22 PM?.let
Shawn
11/07/2019, 8:23 PMAnastasia Finogenova
11/07/2019, 8:23 PMShawn
11/07/2019, 8:23 PMEllen Spertus
11/07/2019, 8:23 PMdoSomething()
somewhere?Shawn
11/07/2019, 8:24 PM?.
as you navigate through the structureLuke
11/07/2019, 8:25 PMlet
is callable on nullables. store.state.selectedTab?.content?.url
returns null if any call return null, in which case it
is null inside let{}
. run
is never calledlet
, you don’t call it if no url can be foundEllen Spertus
11/07/2019, 8:26 PMAlowaniak
11/07/2019, 9:02 PMval url = store.state.slectedTab?. content?.url
if (url != null) doSomething(url)
else reportError...
Kroppeb
11/08/2019, 12:42 AMwhen(val url = store.state.slectedTab?. content?.url){
null ->reportError()
else -> doSomething(url)
}
Stephan Schroeder
11/08/2019, 10:02 AMnull ->
and else ->
line up 😃)