【发布时间】:2014-06-12 20:48:23
【问题描述】:
我一直在尝试编写尽可能少的代码。 所以,我使用:
MyBoolean := Memo1.Text <> '';
而不是
if Memo1.Text = '' then
MyBoolean := true
else
MyBoolean := false;
声明和初始化
var
myGlobal: integer = 99;
声明和初始化全局变量。我想对局部变量做同样的事情,但似乎不可能,所以,我想知道是否有一种方法可以在一行中初始化多个某种类型的变量,比如在 C 中
int x, y, z;
x=y=z=0;
谢谢。
【问题讨论】:
-
嗯,是的,也不是。是的,例如写作
X: Integer = 99; Y: Integer = 99;在一行中,对多个赋值语句没有。 -
如果你使用 Ctrl+D(又名代码格式化),那一行就不算多。
-
是的,但是没有办法在单个语句中初始化多个变量。我很高兴是这样,因为像
x=y=z=0这样的声明对我来说很难阅读。就个人而言,我什至会写多行。 -
Edjis,我钦佩你对 DRY 的承诺(不要重复你自己)。不幸的是,Delphi 倾向于采用 WET 的形式(我们喜欢打字或写两次)。该语言没有实现许多可以减少重复代码的语法糖,例如三元运算符:x if a else c、多重赋值、更好的运算符优先级(以避免在带有布尔运算符的语句中需要括号)、幂运算符、for循环中的单步执行、case语句中的字符串、切片表示法、类型推断等。我希望一旦他们迁移到新的编译器,我们就能得到一些这样的东西。
-
@alcalde,为什么?我不知道。也许是因为当我阅读某些东西时,我的大脑通常不太关注表达中间的内容。所以,也许我害怕我在阅读时会丢失那些
y和z变量,我不知道。关于临时变量,它们有什么问题?我宁愿清楚地看到所写的内容,也不会害怕额外的作业。此外,在生成的汇编代码中也是一样的。还是您认为有一条指令可以一次将函数的返回值分配给三个变量?
标签: delphi variables initialization