相比之下,我们可以使用1 < i && i < 10
而不是1 < i < 10
吗?正如您所看到的,后者可以节省空间并提高可读性。
这可以用任何编程语言吗?
修改
在Javascript中,1 < i < 10
将始终返回true,无论我的等于什么。例如,
1 < 44 < 10
返回true。
答案 0 :(得分:1)
JavaScript不支持它。例如,-3 < -2 < -1
会产生false
。对于正值,它有时会看起来&#34;喜欢它工作,但有隐式类型转换正在进行。例如,3 < 4 < 5
给出true
,但此值实际上来自(3<4)<5
,等于true < 5
,等于1 < 5 === true
。
答案 1 :(得分:1)
支持in Python:
比较可以任意链接;例如,x&lt; y&lt; = z等于x&lt; y和y&lt; = z,除了y仅被评估一次(但在两种情况下,当x&lt; y被发现为假时,根本不评估z。)
示例:
1 < 2 < 3 # true (correct) - equivalent to 1 < 2 and 2 < 3
1 < 4 < 3 # false (correct) - equivalent to 1 < 4 and 4 < 3
(1 < 4) < 3 # true ("incorrect")
3 > 2 > 1 # true (correct) - equivalent to 3 < 2 and 2 < 1
3 > 4 > 1 # false (correct) - equivalent to 3 > 4 and 4 > 1
3 > (4 > 1) # true ("incorrect")
此功能仅仅是特定编程语言(例如Python)的工件,大多数语言(例如JavaScript)仅处理/解析比较运算符(即{{1 }})作为向左关联的二元运算符。
因此,在这种语法甚至是良好类型的情况下,<
通常不是“范围”比较,但是除了少数例外(例如Python),被解析为{{ 1}}。