Здравейте, моята логика ли е грешна или в този код robot { move move mark move mark } трябва да има точки и запетай между командите? Поздрави :)
Шесто предизвикателство
Здравейте, моята логика ли е грешна или в този код robot { move move mark move mark } трябва да има точки и запетай между командите? Поздрави :)
Да, малко точки и запетаи няма да му дойдат зле. Благодаря! :)
Ако в метода move използвам аксесор, за да достъпя и инкрементирам(използвам '+=') текущата позиция, защо получавам изключение
NoMethodError: undefined method `+' for nil:NilClass ... in move
Винаги има стойност на инстанционната променлива. mark си работи както трябва въпреки, че там също се използват аксесори. А ако използвам инстанционна променлива, вместо аксесор, всичко минава. Качил съм кода.
Получавам грешка "undefined local variable or method `move' for #<RSpec::Core::ExampleGroup::Nested_1:0x29f49d8 @example=nil>". Явно не мога да съобразя метод на обектите от кой клас да бъдат move и mark. В момента са методи на обекта от помощния клас. Може ли помощ по този въпрос? Качвам си и аз кода.
@Илиян, помисли добре кога в кой клас се намираш и кога кой е self-ът.
@Нели, погледни внимателно подсказката в условието и си поиграй в тази посока :)
Аз не разбрах "дефакто глобалните променливи". Ако в помощния си клас имам инстанционна променлива, която пази резултата, проблем ли е?
Също проблем ли е да подам блока в сигнатурата на функцията robot? Тоест така нарушавам ли условието да приема един аргумент?
Качил съм кода.
Аз не разбрах "дефакто глобалните променливи". Ако в помощния си клас имам инстанционна променлива, която пази резултата, проблем ли е?
Не, не е проблем да има каквото и да било в помощния клас. За мен „дефакто глобални променливи“ значи например следното (
foo
иbar
са дефинирани извън клас или модул):foo = [] def bar foo << 42 # etc. end
Също проблем ли е да подам блока в сигнатурата на функцията robot? Тоест така нарушавам ли условието да приема един аргумент?
Не, не нарушаваш условието за един аргумент по никакъв начин. Може би просто условието не е било написано много добре. :-)
Супер е условието. И предизвикателствата са супер. Разнообразни са и научавам интересни неща покрай тях. (:
Не знаеш колко ме зарадва. :-)
Пламене, само да вметна, че това долу няма да работи, понеже
def
е scope gate:foo = [] def bar foo << 42 end
Трябва да сте влезли в системата, за да може да отговаряте на теми.