【发布时间】:2020-09-24 16:34:19
【问题描述】:
我搜索了表达式和语句的区别,出现了一个问题。
在 C 或 java 中,我可以像这样在 if 语句中分配变量。
int a;
// someFunc returns an integer value
if ((a=someFunc()) == 1) {
// do something
}
相反,python 不允许这样做。
if (a = someFunc() is 1):
# do something
当然,在 PEP 572 之后,在 python 3.8 之后我可以使用它,
但应该使用:= 符号。
然而,a=someFunc() 不是表达式,而是执行后不返回任何内容的语句。对吗?
所以,python的解释代码的方式看起来是合理的,而java的则不然
但是,如何在 java 或 C 中解释这种代码方式?为什么允许?
【问题讨论】:
-
1是指true吗? -
好吧,我不明白你的意思。该java代码将被解释为
if ( a == 1),如果a为1则为真,否则为假。