【发布时间】:2021-01-05 19:37:23
【问题描述】:
这里是一个简单的问题。我从来没有用 ruby 编程过......所以我想我在这里问过我是否接近解决方案。
挑战:
问题定义:这个 Ruby 方法应该确保单词“Twitter”的拼写正确。
def fix_spelling(name)
if name = "twittr"
name = "twitter"
else
fix_spelling(name)
end
return "name"
end
我检查了如何在 ruby 中构建方法并得出以下解决方案:
我发现的问题:
- 该方法在函数内部被调用,因此它永远不会打印任何内容。
- 返回实际上是返回一个字符串“名称”而不是变量。
def fix_spelling(name)
if name = "twittr"
name = "twitter"
end
return name
end
puts fix_spelling("twittr")
这是正确的吗?
打印:
def fix_spelling(name)
if name == "twittr"
name = "twitter"
end
return name
end
puts fix_spelling(name = "twittr");
【问题讨论】:
-
对我来说看起来是正确的。在您的第一个代码中,如果字符串不是“twittr”,您实际上有无限递归,因为
fix_spelling将调用fix_spelling,这将无限继续,永远不会结束 -
我是这么认为的...我确实认为这将与递归有关。但是,我在 Repl.it 中对其进行了测试,当我调用该方法时,它会产生 twittr。有任何想法吗?我刚刚编辑了主要问题并添加了我必须如何调用它并且它起作用了!你还能怎么称呼它?出于好奇!加油!
-
你的问题我不清楚。您问题中的最后一个版本可以正常工作,您可以通过将代码复制'n'粘贴到 IRB 控制台来轻松证明它。正如您已经注意到的那样,其他两个版本不起作用。你的问题究竟是什么?
-
您的代码包含 115 个字符,远低于 280,所以我看不出有问题。
标签: ruby