【发布时间】:2015-09-13 23:06:26
【问题描述】:
我需要一些帮助来“优化”我的代码,因为我相信有一种更好、更简洁的方法可以做到这一点。我有 6 个变量是通过从更长的字符串中解析出来的:
Year
Make
Model
Color
ColorLower
Style
根据记录,我可能有部分或全部这些变量的详细信息。但是,在大多数情况下,有些是空白的。在填充变量之后,我将它们添加到作为汽车/车辆描述的数据库字段中。
目前我的 if/else 块一个接一个,如果变量的长度非零,则连接描述变量
if (length($Year)>0)
{
$Description == $Description + " " + Year
}
elsif (length($Make) > 0)
$Description == $Description + " " + $Make
} ...and so on
TMTOWTDI 在这里绝对适用,我总是惊叹于专家们提出的优雅的单线。虽然我现在的工作正在发挥作用,但我很想知道是否有一种更短、更紧凑的方法可以最大化我的代码。
谢谢大家。
【问题讨论】:
-
进行字符串连接的方法可能不止一种,但使用
+并不是其中一种方法。 -
==也不是赋值的方式。 -
您还有一个逻辑错误:只有第一个非空字段将附加到
$Description,因为您使用的是elsif。不过,我认为这只是伪代码。 -
我是个笨蛋。我在 C# 和 Perl 之间为这个应用程序来回奔波,这周得到了最好的我。为此,我实际上在 C# 中,因此存在巨大的格式错误。原谅我,伙计们……我很抱歉。
-
真正的解决方案当然是拆分数据库中的那些字段。像这样存储连接的值违反了 1NF。
标签: string perl if-statement concatenation