我怎样才能用Ruby写得更好?

我怎样才能用Ruby写得更好?,ruby,Ruby,我是Ruby新手,我想知道写这段代码的更“Ruby”的方法是什么。我不知道我的语法是否正确。非常感谢你的帮助 另外,如果我想在Mac终端上运行它,我应该命令'ruby eulerfunction.rb'吗 eulerfunction.rb: def gcd(n1, n2) x, y = n1, n2 if x > y #switch them# t = x x = y y = t loop k = x / y r = x % y

我是Ruby新手,我想知道写这段代码的更“Ruby”的方法是什么。我不知道我的语法是否正确。非常感谢你的帮助

另外,如果我想在Mac终端上运行它,我应该命令'ruby eulerfunction.rb'吗

eulerfunction.rb:

def gcd(n1, n2)
  x, y = n1, n2

  if x > y
    #switch them#
    t = x
    x = y
    y = t
  loop
    k = x / y
    r = x % y
    if r == 0
      break
    puts x + " = " + k + "x" + y + " + " + r
    x = y
    y = r
  puts "gcd(" + n1 + "," + n2 + ") = " + y

def eulerf(n)
  count = 0
  for (i = 1; n -1; i++)
    if gcd(n, i) == 1
      count++
  puts "Eulerf(" + n + ") = " + count
有几点:

  • 没有ruby方法我知道人们会经常使用这个词,但它不是真正的“官方”术语
  • 这就是说,我通常在ruby代码上看到的被认为是“好”(非常主观的术语btw)是清晰的变量名(所以尽量避免使用
    r
    gcd
    ),这就消除了混淆,因为在您的代码中,我只知道它们是什么,因为我知道您的代码在做什么,但情况并非总是如此
  • 学习ruby语法,它不会太复杂,会给你一个更好的答案。我建议你从这个开始

最重要的是,正如评论中所提到的,那些可能有非常主观答案的问题不会走得太远。如果你有一些具体的、可量化的东西,你就更有可能得到答案。此外,请将精力投入到代码示例中(即学习语法),并让自己和回答您问题的人都清楚地知道您到底想要什么。

Ruby有一个gcd方法;Ruby的方法是使用它:

20.gcd(30) #=> 10

您好,欢迎来到这个网站!对于StackOverflow来说,这不是一个好问题。当你有一个与编程相关的特定问题时,我建议你阅读并返回。不要期望人们破译你的代码。解释它应该做什么。如果你甚至不知道你的代码是否正确,那么人们怎么知道它是做什么的呢?当你寻求帮助使工作代码更好时,问题会转移到话题上和话题外。