我怎样才能用Ruby写得更好?
我是Ruby新手,我想知道写这段代码的更“Ruby”的方法是什么。我不知道我的语法是否正确。非常感谢你的帮助 另外,如果我想在Mac终端上运行它,我应该命令'ruby eulerfunction.rb'吗 eulerfunction.rb:我怎样才能用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
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来说,这不是一个好问题。当你有一个与编程相关的特定问题时,我建议你阅读并返回。不要期望人们破译你的代码。解释它应该做什么。如果你甚至不知道你的代码是否正确,那么人们怎么知道它是做什么的呢?当你寻求帮助使工作代码更好时,问题会转移到话题上和话题外。