class Book
def isBook()
return true
end
def initialize(isbn, userID)
@isbn = isbn
@userID = userID
end
def ==(var)
if(var.isbn == @isbn && var.userID == @userID)
return true
end
return false
end
def print()
"ISBN: %{@isbn}\nWypozyczono przez: %{@userID}"
end
end
class BookList
def initialize()
@arr = Array.new()
end
def add(book)
if(book.isBook())
@arr.push(book)
end
end
def at(var)
@arr[var].print()
end
end
booklist = BookList.new()
print booklist
booklist.add(Book.new(1231231231231, "d_zeglen"))
print BookList.at(0)
我不知道我在哪里犯的错。当我尝试运行这个程序时,ruby会打印到控制台中:
undefined method 'at' for BookList:Class (No method error)
有人知道这是怎么回事吗?
发布于 2014-06-16 17:05:13
#at
是类BookList
实例的实例方法,而不是类方法。因此,下面的工作
print booklist.at(0)
这是密码:-
class Book
def isBook()
return true
end
def initialize(isbn, userID)
@isbn = isbn
@userID = userID
end
def ==(var)
if(var.isbn == @isbn && var.userID == @userID)
return true
end
return false
end
def print()
"ISBN: %{@isbn}\nWypozyczono przez: %{@userID}"
end
end
class BookList
def initialize()
@arr = Array.new()
end
def add(book)
if(book.isBook())
@arr.push(book)
end
end
def at(var)
@arr[var].print()
end
end
booklist = BookList.new()
print booklist
booklist.add(Book.new(1231231231231, "d_zeglen"))
print booklist.at(0)
# >> #<BookList:0xa013de4>ISBN: %{@isbn}
# >> Wypozyczono przez: %{@userID}
https://stackoverflow.com/questions/24248706
复制相似问题