当前位置: 首页 > 知识库问答 >
问题:

为什么在Ruby中获取返回零

轩辕源
2023-03-14

我有一个简单的方法

def save_logline
  print "What's the name of the movie"
  movie_name = gets.strip
  print "And what is your precious logline?"
  logline = gets.strip
  File::open(movie_name + '.txt', 'w') do |f|
    f.write(logline)
  end
end

每当我运行代码时,我都会收到插入电影名称的第一个提示,但是一旦我按下回车键,就会调用第二个打印,给我这个消息。

And what is your precious logline?=> 0

该文件已写入,但我无法在文本文件中插入任何内容。我的逻辑有什么问题,我该如何解决这个问题?我在Ruby我和Ubuntu中使用irb。

编辑:看起来,由于其他用户对我的代码工作的反应,以及我自己在另一台开发机器上的测试,我的代码在这台机器上无法工作。我唯一能说的是我在使用RubyMine的irb控制台。现在的问题一定是这是RubyMine的问题还是我的开发机器有更大的问题?

最终编辑:我检查了我的第二个具有RubyMine的comp,似乎它在RubyMine的irb控制台中也不起作用。我将向 RubyMine 发布这个错误,并在一两天内将功劳归功于 Jeremy,除非有人知道为什么 RubyMine 的 irb 表现得很时髦。

共有1个答案

秦德海
2023-03-14

您的代码有效。0f.write返回值。它说它向您的文件写入了零字节,因为您没有给它任何输入。

编辑:也许你不小心按了两次回车键...

 类似资料:
  • 问题内容: 即使正则表达式应返回true,程序也不会退出。代码有什么问题? 问题答案: 仅当整个字符串与正则表达式匹配时才返回。在你的情况下,你的正则表达式仅代表 一个 字符不是,或。 我怀疑您要检查字符串是否包含您在正则表达式中描述的这些特殊字符之一。在这种情况下,请将您的正则表达式括起来,以使正则表达式匹配整个字符串。哦,您不必逃脱character class内部。

  • 我有点困惑php函数布尔瓦尔是如何工作的。考虑以下几点

  • 在R中,返回FALSE和返回“numeric”,而返回TRUE和返回“integer”。为什么不返回true? 要确定x1是否包含整数值,我需要使用。有更简单的方法吗? 可以返回数组,例如有序因子。不应该返回c(“numeric”,“integer”)吗?

  • 我正在研究一个简单的递归方法,在Ruby中实现Euclid的算法,并发现自己在弄清楚一旦达到基本情况后如何返回所需的值。以下是我必须了解的内容: 并且输出: 注意,“puts euclid_alg(100,15)”没有输出,我希望返回100和15,5的最大公约数。 为了进行故障排除,我将第3行中的替换为。新的产出是: 将“make it here 5 10”添加到控制台输出中,可以清楚地表明 re

  • 问题内容: 这是简单的代码,我没有得到设置位图的结果,而是得到了null。谁能告诉我我在哪里犯错了? 更新 好的,所以我无法像我想的那样将文本转换为图像。这样呢 这会创建位图吗? 问题答案: 从文档中: 返回 解码的位图;如果无法解码图像,则 返回 null。 字符串“ test”中涉及的字节不是有效的位图,对吗? 如果将文本“ test”保存在名为or 等的文件中,并试图在Windows中打开它

  • 问题内容: 为什么要用Python返回? 我如何获得改组后的值而不是? 问题答案: 更改列表 到位 。 在原位更改结构的Python API方法通常返回,而不是修改后的数据结构。 如果要基于现有列表创建 新的 随机混排列表,并按顺序保留现有列表,则可以使用输入的完整长度: 您还可以将with用于排序键: 但这会调用排序(O(NlogN)操作),而采样到输入长度仅需要O(N)操作(与所使用的过程相同