【问题标题】:ruby IRB vs code in an IDE why IRB brings results and IDE doesnt? [closed]Ruby IRB 与 IDE 中的代码为什么 IRB 会带来结果而 IDE 不会? [关闭]
【发布时间】:2017-10-06 16:41:03
【问题描述】:

今天我得到了一个正确的解决方案。我在 IRB 中很好地运行了它,它完美地解释了它。但是,如果我将该代码粘贴到 ide 中,然后我从控制台调用该程序,它不会显示任何内容,尽管它运行。如果我在布尔代码之前添加一个 puts 来查看某些内容,它会列出我的真假等,但没有像 IRB 解释器那样,它实际上给出了一个数组中包含在另一个数组的短语中的单词。

这显然是在说,我对这到底是如何运作的一无所知。好像 IDE 没有解释任何东西,所以我从 Komodo 安装了 Rubymine 并安装了 IDE 可以使用的 ruby​​ 解释器。没有区别。

我已经复制并粘贴了教程点中的代码,并获得了这个永久链接,它可以实时显示发生了什么。谁能告诉我我应该怎么做才能让 IDE 做 IRB 做的事情

http://tpcg.io/HYfIrX

代码是这样的

words = ["house", "dog", "cat", "man", "girl"]
phrases = ["I have a house", "I am a dog", "I am man"]

words.select { |word| phrases.any? { |phrase| phrase.include? word } }

这就是 IRB 中显示的内容,这很好,这就是我想要的内容

root@kali:~/rubyprograms# irb
irb(main):001:0> words = ["house", "dog", "cat", "man", "girl"]
=> ["house", "dog", "cat", "man", "girl"]
irb(main):002:0> phrases = ["I have a house", "I am a dog", "I am man"]
=> ["I have a house", "I am a dog", "I am man"]
irb(main):003:0> 
irb(main):004:0* words.select { |word| phrases.any? { |phrase| phrase.include? word } }
=> ["house", "dog", "man"]

但是,如果您运行相同的代码(除了我添加的“看跌期权”以查看某些东西),它根本不会带来我想要的,而是布尔值的花名册

http://tpcg.io/HYfIrX

【问题讨论】:

  • 请不要全部用大写字母,这非常难读,不是英语是如何工作的,通常被解释为非常粗鲁。
  • IRB 向您显示每个表达式的结果,而您的代码不会输出任何内容。如果你想看到输出,你需要对你的代码生成的结果做一些事情,比如puts它到屏幕上。

标签: ruby irb


【解决方案1】:

代码中的链接是

words.select { |word| puts phrases.any? { |phrase| phrase.include? word } }

您的问题中所述的正确代码(有效)

words.select { |word| phrases.any? { |phrase| phrase.include? word } }

找出不同之处:)

【讨论】:

  • 不,不,我知道我添加了 puts,我这样做是为了看到一些结果。如果您转到教程点中活动代码所在的链接,您会看到它没有带来结果,请检查它,如果您不信任该链接,请在线tpcg.io/HYfIrX 在线工具可以告诉您最终链接。这是一个简短的href,就像今天很常见一样,您自己删除 puts ,您会看到没有显示任何内容,这实际上是我的问题,为什么?
  • @Arminius 写p words.select { |word| phrases.any? { |phrase| phrase.include? word } }。 Ruby 不会打印您的返回值,除非您告诉它这样做。在这种情况下,使用p 打印数组。 IRB 默认自动打印返回值。 `
猜你喜欢
  • 1970-01-01
  • 2012-08-12
  • 2014-05-15
  • 2011-02-15
  • 1970-01-01
  • 2018-04-21
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
相关资源
最近更新 更多