我的问题可能很简单,但我无法在任何地方找到答案.
创建类时,例如:
class Book
@author = "blabla"
@title = "blabla"
@number_of_pages"
Run Code Online (Sandbox Code Playgroud)
我想创建一个方法来打印我的变量.我尝试时遇到问题:
def Print
puts @author, @title, @number_of_pages
end
Run Code Online (Sandbox Code Playgroud)
我一无所获.
当我尝试:
def Print
puts "@author, @title, @number_of_pages"
end
Run Code Online (Sandbox Code Playgroud)
我直截了当:"@ author,@ title,@ number_of_pages"
如何使Print方法打印出变量的值?
您应该将变量初始化移动到initialize:
class Book
def initialize
@author = "blabla"
@title = "blabla"
@number_of_pages = 42 # You had a typo here...
end
end
Run Code Online (Sandbox Code Playgroud)
你在问题中的方式,变量是类实例变量(你可以谷歌,如果你好奇,但它在这里并不真正相关).
初始化为(正常)实例变量,Print()如果您只是想要转储状态,那么您的第一个版本的工作 - 它会在自己的行上打印每个参数.
要制作第二个版本的Print()工作,您需要将变量包装起来以#{}进行插值:
def print # It's better not to capitalize your method names
puts "#{@author}, #{@title}, #{@number_of_pages}"
end
Run Code Online (Sandbox Code Playgroud)