小编eri*_*own的帖子

在Ruby中构建字符串时,为什么铲运算符(<<)比plus-equals(+ =)更受欢迎?

我正在研究Ruby Koans.

about_strings.rb中test_the_shovel_operator_modifies_the_original_stringKoan 包含以下注释:

在构建字符串时,Ruby程序员倾向于使用铲运算符(<<)而不是正等运算符(+ =).为什么?

我的猜测是它涉及速度,但我不明白引擎盖下的动作会导致铲子操作员更快.

有人能够解释这个偏好背后的细节吗?

ruby string optimization

149
推荐指数
6
解决办法
3万
查看次数

Ruby Koans的triangle.rb更优雅的解决方案

我一直在研究Ruby Koans,并将其发送到about_triangle_project.rb,在其中您需要编写方法三角形的代码.

这些项目的代码可在此处找到:

https://github.com/edgecase/ruby_koans/blob/master/koans/about_triangle_project.rb

https://github.com/edgecase/ruby_koans/blob/master/koans/triangle.rb

在triangle.rb中,我创建了以下方法:

def triangle(a, b, c)
  if ((a == b) && (a == c) && (b == c))
    return :equilateral
  elsif ((a == b) || (a == c) || (b == c))
    return :isosceles
  else
    return :scalene
  end
end
Run Code Online (Sandbox Code Playgroud)

我从阅读克里斯·派恩的"学会计划"中了解到,总有不止一种方法可以做.虽然上面的代码有效,但我不禁想到有一种更优雅的方式.是否有人愿意提出他们如何使这种方法更有效和紧凑的想法?

我很好奇的另一件事是,为了确定等边三角形,我无法创造(a == b == c)的条件.它是等边三角形的证明,但Ruby讨厌语法.有一个简单的解释,为什么这是?

ruby

15
推荐指数
5
解决办法
9279
查看次数

标签 统计

ruby ×2

optimization ×1

string ×1