3

我想这对于大多数优秀的1程序员来说是微不足道的,但我已经习惯了使用truefalse2进行编程,以至于当我遇到 0 和 1 时,我永远记不起哪个代表真,哪个代表假。

有什么建议么?

1好:我的意思是一个知道 C 的人,当然:)
2我是一名 Java 开发人员,正如你所猜到的 ;)

4

11 回答 11

9

助记符是“这其中有多少真相?” 零整数意味着零真理。其他任何事情都是非零真理。:)

于 2009-02-16T19:14:34.183 回答
4

我有一位同事,他的办公桌旁边的墙上只贴了一张便利贴:

错误 = 0
正确 != 0

于 2009-02-16T19:19:50.473 回答
4

如果你真的有那么大的麻烦,我会用这种语言把它抽象出来。

例如在 C 中

#define TRUE 1
#define FALSE 0

一般来说,无论如何我都会避免在代码中放置常量。

考虑,

if(my_var == TRUE)

相反,

if(my_var == 1)

不过,在这里你需要确保你正在测试正确的东西,

if(my_var != FALSE)

会抓到更多的病例。

干杯!

基督教

于 2009-02-16T19:43:19.027 回答
3

“不好了!”
(哦 == 0)

于 2009-02-16T19:22:59.967 回答
3

由于在 shell (sh, bash) 中 true 为 0 而 false 为 1,这使情况变得复杂:

$ 真
$回声$?
0
$假
$回声$?
1
于 2009-02-16T19:35:14.677 回答
3

你有没有注意到日常用品的电源开关用一个圆圈代表关闭,一条线代表打开

将它们链接起来并不是一件容易的事。

关 = 圆 = 零 = 假

开 = 行 = 一 = 真

于 2009-02-16T19:59:36.430 回答
2

记住“无==假”,“某事==真”

于 2009-02-16T19:14:39.923 回答
2

没有助记符 - 如果您来自硬件背景,它会变得更加复杂。但是对于程序员来说,只要问一个问题:

是否设置了任何位?

答案是真或假,就是结果。只有 0(即使是有符号整数)没有设置位。

-亚当

于 2009-02-16T19:17:52.443 回答
1

映射到OnOff。我认为大多数程序员都会以相同的方式映射这两个集合:1/true 都进入“开”,而 0/false 都进入“关”。

于 2009-02-16T19:13:59.580 回答
1

这取决于语言。

  • C( 0 ? "never happens" : "false")( 1 ? "true" : "never happens")

  • Ruby , ELisp : 两者0都是1真的

  • bash(或cmd.exe):true命令(来自 coreutils)以0状态码false退出,命令以非零状态码退出

许多现代流行的编程语言具有强大的 C 传统,因此它们认为0是错误的并且1(或任何非零数字)是正确的。

不要将助记符用于布尔值,使用您的语言的习语来测试真实性。

于 2009-02-16T20:47:31.057 回答
0

爱c - 因为你不能增加谎言。:)

于 2009-02-16T19:38:20.053 回答