Ruby 如果一行超过80个字符,我不应该使用三元表达式吗?
这里的语义问题。我喜欢使用三元表达;例如(为了说明我的问题,这是一个愚蠢的例子): ……但队伍往往很长。我是否应该使用此选项:Ruby 如果一行超过80个字符,我不应该使用三元表达式吗?,ruby,Ruby,这里的语义问题。我喜欢使用三元表达;例如(为了说明我的问题,这是一个愚蠢的例子): ……但队伍往往很长。我是否应该使用此选项: if some_int >= 5 @description = "This is a pretty long value" else @description = "This value is a little shorter" end 只是为了让每一行都更短?越短越好?谢谢 将表达式分成几行: @descript
if some_int >= 5
@description = "This is a pretty long value"
else
@description = "This value is a little shorter"
end
只是为了让每一行都更短?越短越好?谢谢 将表达式分成几行:
@description = some_int >= 5
? "This is a pretty long value"
: "This value is a little shorter"
通过这种方式,您可以保持代码的可读性,并且仍然具有三元结构
some_int >= 5 ? @description = "This is a pretty long value" : @description = "This value is a little shorter"
这是对三元数的不当使用。三元函数的唯一用途是使用返回值。应该这样写(格式问题除外):
如果一行超过80个字符,我不应该使用三元表达式吗
行长度是错误的度量。这就像询问子例程是否不应超过25行(或其他)。这并不是问题的根源,可能会导致一些尴尬的选择。真正的问题是复杂性
从复杂性的角度来看,你的三元是好的。它是一个简单的条件,简单的语句,并且使用返回值。问题是语句太长,而且会换行。您可以根据需要重新设置它们的格式
您还可以将字符串放入它们自己的变量中,为代码添加进一步的说明
@long_description = "This is a pretty long value"
@short_description = "This value is a little shorter (except it's not)"
@description = some_int >= 5 ? @long_description : @short_description
这两种工具都是有效的,可以组合使用。这是情境性的
嘿,看看这一点,现在文本是一个可配置的对象变量。Ruby的有趣之处在于,如果三元数太混乱或太笨拙,可以使用
if
:
@description =
if some_int >= 5
"This is a pretty long value"
else
"This value is a little shorter"
end
这比三元等价物更容易一目了然
if
和case
都以这种方式工作,返回触发的值
在一般实践中,三元函数在处理非常短的值时效果最好:
method_call(value > 5 ? :high : :low)
除此之外,很难理解会导致意外错误的原因。为什么要将行数保持在80个字符以下?@spickermann因为80个字符是最小编辑器窗口宽度的安全假设,如果超过80个字符,它将在右边距处换行或消失,使其更难阅读。就我个人而言,我假设现在我们有100个宽屏,但你需要一个最低限度。
@long_description = "This is a pretty long value"
@short_description = "This value is a little shorter (except it's not)"
@description = some_int >= 5 ? @long_description : @short_description
@description =
if some_int >= 5
"This is a pretty long value"
else
"This value is a little shorter"
end
method_call(value > 5 ? :high : :low)