空合并大致可转换为 return x, unless it is null, in which case return y
我经常需要 return null if x is null, otherwise return x.y
我可以用 return x == null ? null : x.y;
不错,但是null
中间总是困扰着我-似乎是多余的。我更喜欢这样的东西return x :: x.y;
,::
只有在它之前的东西不在时,它后面的才被评估null
。
我认为这是几乎与简洁,内联零检查的对面空聚结,那种复杂的,但我[ 近 ]一定会出现在C#中没有这样的运营商。
是否还有其他具有这种运算符的语言?如果是这样,它叫什么?
(我知道我可以在C#中为它编写一个方法;我使用return NullOrValue.of(x, () => x.y);
,但是如果您有更好的东西,我也想看看。)
return x ? x.y : NULL
。是的,用于将指针类型转换为布尔值!