【发布时间】:2013-08-17 14:28:25
【问题描述】:
我最近在网上阅读了一段 javascript 代码,想将其转换为 C#。当遇到这行代码时,我不知道它做了什么:X = (!X ? 8 : X)。请解释。
【问题讨论】:
-
我更喜欢
if(!x) x=8;在这种特殊情况下,三元不会保存任何内容。
标签: javascript ternary-operator
我最近在网上阅读了一段 javascript 代码,想将其转换为 C#。当遇到这行代码时,我不知道它做了什么:X = (!X ? 8 : X)。请解释。
【问题讨论】:
if(!x) x=8; 在这种特殊情况下,三元不会保存任何内容。
标签: javascript ternary-operator
它检查X 是否为假(包含 0、空字符串、null 或未定义)。如果是,则该行将 8 分配给 X,否则 X 保留其原始值。
【讨论】:
如果!X 为真(所以如果X 为假),它会将X 变量设置为8。否则,X 保持相同的值。
所以,如果 X 是一个空字符串、false 布尔值或 0 数字(我可能会忘记一些值,但你很好理解),它将被设置为 8,否则它将保持其原始值。同理:
if(!X) { X = 8 }
【讨论】: