gpt4 book ai didi

ruby - 如果将行推到 80 个字符以上,我是否应该不使用三元表达式?

转载 作者:数据小太阳 更新时间:2023-10-29 07:43:51 26 4
gpt4 key购买 nike

这里是语义问题。我喜欢使用三元表达式;例如(这是一个愚蠢的例子,只是为了说明我的问题):

    some_int >= 5 ? @description = "This is a pretty long value" : @description = "This value is a little shorter"

...但是线路通常会变得很长。我应该改用这个吗:

    if some_int >= 5
@description = "This is a pretty long value"
else
@description = "This value is a little shorter"
end

只是为了让单行更短?更短的一定==更具可读性吗?谢谢!

最佳答案

some_int >= 5 ? @description = "This is a pretty long value" : @description = "This value is a little shorter"

这是对三元组的不当使用。三元的唯一用途是当您要使用返回值时。应该这样写(除了格式问题):

@description = some_int >= 5 ? "This is a pretty long value" : "This value is a little shorter"

Should I not use a ternary expression if it pushes the line over 80 characters?

行长是错误的度量标准。这就像询问子例程是否不应超过 25 行(或其他)。这并没有完全解决问题的根源,可能会导致一些尴尬的选择。真正的问题是复杂性。

从复杂的 POV 来看,您的三元组很好。这是一个简单的条件,简单的语句,并且使用返回值。问题是语句太长,它们会换行。您可以将它们重新格式化为 @U-D13 suggests .

@description = some_int >= 5
? "This is a pretty long value"
: "This value is a little shorter"

您还可以将字符串放入它们自己的变量中,以进一步阐明代码。

@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 - 如果将行推到 80 个字符以上,我是否应该不使用三元表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37950070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com