我正在尝试获取用户的输入以创建新的User
对象:
class User
attr_accessor :name
attr_accessor :age
attr_accessor :email
end
puts "Name:"
input = gets.chomp.to_s
name = "#{input} = User.new"
puts "Age:"
age = gets.chomp.to_s
puts "Email:"
email = gets.chomp.to_s
name.name = "#{input}"
name.age = "#{age}"
name.email = "#{email}"
puts "Name: #{input.name}, Age: #{input.age}, E-mail: #{input.email}"
如何调用新创建的对象以便输入新属性?我是否需要更改
的name
部分
name.name = "#{input}"
name.age = "#{age}"
name.email = "#{email}"
到用户的输入?
答案 0 :(得分:0)
在您的情况下,input = gets.chomp.to_s
是一个字符串,字符串没有任何name
,age
和email
方法,您应该创建一个新的{{1}对象然后用用户给你的信息填充它,你的代码离答案不远,但是有很多小错误,这里是以下工作代码:
User
我希望它可以帮到你。
顺便说一句,你想用这条线做些什么:class User
attr_accessor :name
attr_accessor :age
attr_accessor :email
end
user = User.new
puts "Name:"
user.name = gets.chomp.to_s
puts "Age:"
user.age = gets.chomp.to_s
puts "Email:"
user.email = gets.chomp.to_s
puts "Name: #{user.name}, Age: #{user.age}, E-mail: #{user.email}"
?因为你只是用内容“User.new”创建一个新字符串(作为一个字符串文字,它不是以任何方式由Ruby执行的,所以你永远不会有一个新的对象,通过用双(或单)引号包围它的声明