【问题标题】:What is "translate" keyword do in Ruby什么是“翻译”关键字在 Ruby 中的作用
【发布时间】:2017-01-10 20:30:06
【问题描述】:

小问题:
“翻译”这个词是做什么的,为什么它在我的 IDE 中被着色为特殊的?

长问题:
我正在做 Odin 项目,04_pig_latin Ruby 和 RSpec 练习中的代码应该是这样的:

def translate(string) 
  # some code
end

根据我需要通过的规范:

describe "#translate" do

  it "translates a word beginning with a vowel" do
    s = translate("apple")
    expect(s).to eq("appleay")
  end

end

在我的 Cloud9 IDE 中,单词 translate 是蓝色的(例如 requirerender),所以我认为我不能将它用作方法名称,并且需要更改给定的 RSpec 测试才能通过它.但是,我看到其他执行此任务的人将此方法命名为 translate 没有任何问题。

我还没有找到任何关于这个“关键字”的东西可以使它独一无二,我不知道它到底在做什么,也不知道它的独特性是来自 Ruby 还是 Cloud9。

Link to exercises repo

【问题讨论】:

  • 您的 IDE 错误。 translate 在 Ruby 中没有任何特殊意义。
  • 这是一个函数名,这就是 IDE 语法高亮函数名的方式。
  • cloud9IDE 编辑器通常不会突出显示 ruby​​ 文件中的方法名称。所以这只是一个错误。您可以继续忽略它。
  • 感谢您的回复。但是我仍然对 irb 的行为感到好奇。为什么是“start_with”?加载该代码后变得未定义?
  • 我明白了,这只发生在 irb 而不是脚本中。很遗憾,这不是您的主要问题,并且您发布了屏幕截图而不是代码,这是您真正应该做的。

标签: ruby rspec cloud9-ide translate


【解决方案1】:

每个 Ruby 语法高亮库通常都包含用于 Rails 之类的常用短语。例如,belongs_to 虽然不是 Ruby 意义上的特殊关键字,但在 Rails 应用程序中非常常见,因此经常被突出显示。

translate 可能是一个特殊的短语,并且被许多 I18N 库使用。

唯一确定的方法是查看语法高亮显示您的编辑器使用的规则。通常那里有一个特殊方法名称的列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多