如果满足先前的条件,&& 运算符是否仅评估右侧?
Do && operators only evalutate the right-hand side if the previous condition was met?
如果我想检查一个多维列表是否有多个级别的值,我可以做类似的事情吗
if(list.contains("value")
&& list.get("value").contains("value")
&& list.get("value").get("value").contains("value")
&& ...)
还是在前面的条件为假后,它还会检查其他语句,导致空指针错误?
它也是特定于语言还是通用标准,因为我发现如果前一个为假,python 和 java 将忽略条件,但这仍然适用低级语言?
这称为“短路评估”并且取决于语言。您可以查看关于此的 wiki 文章,其中按语言描述了该功能:
如果我想检查一个多维列表是否有多个级别的值,我可以做类似的事情吗
if(list.contains("value")
&& list.get("value").contains("value")
&& list.get("value").get("value").contains("value")
&& ...)
还是在前面的条件为假后,它还会检查其他语句,导致空指针错误?
它也是特定于语言还是通用标准,因为我发现如果前一个为假,python 和 java 将忽略条件,但这仍然适用低级语言?
这称为“短路评估”并且取决于语言。您可以查看关于此的 wiki 文章,其中按语言描述了该功能: