.length返回值(NoMethodError)ruby版本2.7.0p0
您好,我正在尝试运行这段代码,但是我在我的代码行上收到了no-method错误。我遇到的代码行长度是某种ruby版本的问题,但是我如何解决这个问题.length返回值(NoMethodError)ruby版本2.7.0p0,ruby,Ruby,您好,我正在尝试运行这段代码,但是我在我的代码行上收到了no-method错误。我遇到的代码行长度是某种ruby版本的问题,但是我如何解决这个问题 class BookCase def initialize(attributes = {}) @capacity = attributes[:capacity] @books = attributes[:books] || [] end def full? space = @books
class BookCase
def initialize(attributes = {})
@capacity = attributes[:capacity]
@books = attributes[:books] || []
end
def full?
space = @books.length
puts space
end
end
bookcase1 = BookCase.new(capacity: 4, books: 6)
puts "is it full?"
bookcase1.full?
输出:
6:Integer(NoMethodError)的未定义方法
length`我不太明白您想做什么,但问题与Ruby版本无关。实例变量books
的值是整数
数字6,在Integer
类中没有length
方法或属性。再看一看错误-对于Integer
没有length
方法。您可以将@books
变量更改为@books=attributes[:books]| 0
。这样您就不需要在full?
方法中调用.length
。