2017-01-22 1 views
0
class Place 
    @description = "Default place" 

    def initialize(x : Int32, y : Int32, description : String) 
    @x = x 
    @y = y 
    @description = description 

    puts "Description of this place is: #{description}" 
    end 
end 



require "./browser-game/*" 
require "./places/*" 

module Browser::Game 
    # TODO Put your code here 
    place = Place.new 2, 3, "Yay new description" 

    puts place.description 
    puts "End of the program" 
end 

Я получаю эту ошибку:Получить экземпляр свойства вместо неопределенного метода

Error in browser-game.cr:8: undefined method 'description' for Place

puts place.description 
      ^~~~~~~~~~~ 
+0

Мне нравится ваша установка кодировки –

+0

@LucaAngioloni спасибо! Очень рекомендую приложение для катодного терминала для Mac со звуками от Alien (первый фильм) – idchlife

ответ

0

написать следующее:

class Place 
    getter :description 
    @description = "Default place" 

    def initialize(x : Int32, y : Int32, description : String) 
    @x = x 
    @y = y 
    @description = description 

    puts "Description of this place is: #{description}" 
    end 
end 

getter используется для получения доступа к считанной собственности из экземпляра. setter - для установки. Без этого компилятор попытается получить доступ к методу, так как вы не предоставили доступ к этому свойству.

+1

Вы можете напрямую написать 'getter description =" Место по умолчанию "' – bew

Смежные вопросы