我有这段代码:
on :message, "something" do |m|
m.reply file.read.lines[2]
end
......哪个有效,但只有一次。当我再次尝试或使用相同的代码但使用不同的文件时,它不起作用。有人可以帮我这么做吗?
答案 0 :(得分:0)
您获得此行为的原因取决于您如何定义file
。
但是没有其他信息,仍然可以提供一个(希望)工作的例子:
on :message, "something" do |m|
first_line_to_read = 0
last_line_to_read = 2
lines_of_text = file.read.split("\n")
first_line_to_read.upto(last_line_to_read).each do |idx|
m.reply lines_of_text[idx]
end
end
希望这个例子很清楚。它为first_line_to_read
和last_line_to_read
索引范围内的每行文本发送单独的回复。
一些重要的概念是:
file.read
,这将存储第一次调用它的结果。 m
变量来发送消息。