【发布时间】:2016-05-22 18:58:42
【问题描述】:
我不确定是否有办法做到这一点,但我认为这是最好的地方。
我想在使用后立即更改布尔值(或之前,只需要更改语义),但在同一行。 预期的效果将与此代码相同:
bool flag, tempFlag; //whatever names
...
tempFlag = flag;
flag = !flag;
但我想知道是否有一种简写方式可以在一行中完成。类似tempFlag = flag!; :P
例如,您可以在单行中使用 int 的值后立即更改其值,如下所示:
int x = y++;
有没有写这种动作的捷径?
我的具体问题是 C#,但我很好奇其他流行语言是否有这种方式。
【问题讨论】:
-
为什么要写一行别人可能看不懂的语法,而你可以写两行每个人都知道你在做什么?
-
@NathanOliver 感谢您的意见。是的,在大多数情况下我同意你的看法。然而,这只是一个我正在努力并试图拒绝的个人实验项目。行数减少到最低限度,所以我觉得没有必要让代码具有难以置信的可读性(只要我了解上下文,我就知道我会理解它)。
-
你现在这么说,但三年后你又回到它,你又忘记了它。然后你会想知道你到底在做什么。我很感激尝试减少行数,但恕我直言,您不应该为此牺牲可读性。
-
您也可以编写自己的类型,隐式转换为/从 bool 和重载 ++ 我想..