草庐IT

ruby - 你如何理解 Ruby 中的这个三元条件?

我在某些代码中遇到了三元组,但我无法理解条件:str.split(/',\s*'/).mapdo|match|match[0]==?,?match:"somestring"end.join我确实理解我是在某些点上拆分字符串并将总结果转换为数组,然后依次处理数组的每个元素。除此之外,我不知道发生了什么。 最佳答案 一种(稍微)不那么令人困惑的写法是:str.split(/',\s*'/).mapdo|match|ifmatch[0]==?,matchelse"somestring"endend.join我认为多行三元语句很糟糕,尤其是

ruby - 如何使用 RuboCop 强制使用三元括号?

我有一个编码标准,建议无论表达式如何,三元组的初始参数都应始终在括号内。例如foo=(thing.baz?)?[]:东西.bar以下行为应视为违规:例如foo=thing.baz??[]:东西.bar是否可以使用Rubocop的内置Cops来实现这一点,或者这是否需要自定义Cop。如果可以,我将如何实现? 最佳答案 我看到了你的问题,所以我继续为你实现警察。名称是Style/TernaryParentheses,您想要的EnforcedStyle选项是require_parentheses(不是默认值。)#.rubocop.ymlS

ruby - 可能用三元运算符表达条件 HAML

试图想出一种更紧凑的方式来在HAML和Ruby中表达这个条件,也许使用三元运算符:-if@page.nil?%br(nothingyet)-else%br#{@page.name}(根据NeatwaytoconditionallytestwhethertoaddaclassinHAMLtemplate寻找类似的方法)您的帮助将不胜感激:) 最佳答案 您的代码使文本成为的子元素元素;这是不可取的。我认为,您真正的意思是:%br-if@page.nil?(nothingyet)-else#{@page.name}为此你可以简单地做:%b

ruby-on-rails - Rails View 中的三元运算符

我是Rails的新手,所以请原谅我,如果它很简单,但看起来我写的似乎是正确的。在我看来,我正在使用三元运算符来决定是否添加一个active类:">我已经调试并确定is_current_page('')正在返回true。 最佳答案 你错过了="> 关于ruby-on-rails-RailsView中的三元运算符,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/19999757/

Ruby 字符串连接和三元不玩得好吗?

在下面的代码中,第三行错误:TypeError:无法将false转换为Stringline="somedefaulttext"line执行此操作的更好方法是什么? 最佳答案 这些括号是必需的,因为优先级高于?(precedencetable)。解决方案:line作为旁注,请注意在构建数组时可以采用函数式方法:line=["somedefaulttext",("somemoretext"unlessmore.empty?),even_more.empty??"done.":"andevenmoretext",].compact.joi

ruby - DRY up Ruby 三元

我经常有这样一种情况,我想做一些条件逻辑,然后返回一部分条件。如何在不重复true或false表达式中的条件部分的情况下执行此操作?例如:ClassName.method.blank??false:ClassName.method有没有办法避免重复ClassName.method?这是一个真实世界的例子:PROFESSIONAL_ROLES.key(self.professional_role).nil??948460516:PROFESSIONAL_ROLES.key(self.professional_role) 最佳答案 假设

ruby - FizzBu​​zz 使用三元条件运算符

我一直在阅读ruby​​中的条件式表达式。然而,我遇到了一个我不太明白如何定义经典FizzBu​​zz问题的问题。我了解FizzBu​​zz问题,甚至在使用三元运算符找到以下快速解决方案之前自己编写了自己的问题。如果有人能向我解释这条链是如何解决FizzBu​​zz问题的,我将不胜感激:)foriin0...100putsi%3==0?i%5==0?"FizzBuzz":"Buzz":i%5==0?"Fizz":iend 最佳答案 一些括号可能会有所帮助:puts(i%3==0)?((i%5==0)?"FizzBuzz":"Buzz

erb 中的 Ruby 三元运算符?

如何使这段代码看起来更好:":""%>也就是说,HTML是否可以放在ERBblock之外以使其更易于阅读? 最佳答案 ">我提倡使用CSS类而不是样式属性8P:"> 关于erb中的Ruby三元运算符?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5248625/

Ruby 多行三元表达式?

我正在尝试转换这样的东西:ifcondition?expression1line1expression1line2expression1line3elseexpression2line1end对于三元,我的问题是:如何将多行放在一行的一个表达式中?你像java一样用分号分隔吗?像这样?condition?expression1line1;expression1line2;expression1line3:expression2 最佳答案 InRuby,itisalwayspossibletoreplacenewlineswithse

没有 else 的 Ruby 三元运算符

是否有一个ruby​​惯用法来表示“如果这样做”和“这样做”只是一个简单的命令?比如我现在在做object.method?a.action:nil将else子句留空,但我觉得可能有一种更惯用的方法可以做到这一点,而不必在末尾指定nil。(或者,我觉得在这种情况下使用多行代码会很浪费。 最佳答案 作为一般规则:您几乎不需要Ruby中的三元运算符。在C中需要它的原因是因为在C中if是一个语句,所以如果您想返回一个值,您必须使用三元运算符,即一个表达式。在Ruby中,一切都是表达式,没有语句,这使得三元运算符几乎是多余的。您可以随时更换c