记住gets.chomp

时间:2013-01-06 21:54:53

标签: ruby editor

我正在尝试使用Ruby编写文本编辑器,但我不知道如何使用gets.chomp记忆输入。

到目前为止,这是我的代码:

outp =
def tor
    text = gets.chomp
    outp = "#{outp}" += "#{text}"
    puts outp
end

while true
    tor
end

1 个答案:

答案 0 :(得分:0)

方法中的普通变量(如outp)仅在该方法中可见(AKA具有范围)。

a = "aaa"
def x
  puts a
end
x # =>error: undefined local variable or method `a' for main:Object

为什么?首先,如果您正在编写方法并且需要计数器,则可以使用名为i(或其他)的变量,而不必担心方法之外的其他名为i的变量。

但是......你想在方法中与外部变量进行交互!这是一种方式:

@outp = "" # note the "", initializing @output to an empty string.

def tor
    text = gets.chomp
    @outp = @outp + text #not "#{@output}"+"#{text}", come on.
    puts @outp
end

while true
    tor
end

@为此变量提供了更大的可见性(范围)。

这是另一种方式:将变量作为参数传递。这是对你的方法的说法:“在这里,使用它。”。

output = ""

def tor(old_text)
  old_text + gets.chomp
end

loop do #just another way of saying 'while true'
  output = tor(output)
  puts output
end