On Monday, 30 October 2017 at 19:46:54 UTC, Andrei Alexandrescu wrote:
I see from comments that different people think of it in a different way. I suggest them to read this section from Kotlin docs to understand the reasoning behind the elvis operator.

The principle of least astonishment indicates we should do what the lowering does:

expr1 ?: expr2
==>
(x => x ? x : expr2)(expr1)

An approach that does things any differently would have a much more difficult time. It is understood (and expected) that other languages have subtly different takes on the operator.

Andrei

I may add that the same logic is used in .get(key, defaultValue) method of Associative Arrays

Reply via email to