Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > Передача параметра (вопрос новичка)


Автор: and_hom 19.11.2008, 22:36
Здравствуйте!

учу ruby второй час

вот не понимаю

Код

        for i in [1,2,3,4,5,6,7,8,9,0]
            evt_button(find_window_by_id( Wx::xrcid('b'+i.to_s)).get_id ) { 
                typed(i)
            }
        end


в функцию typed параметр i передаётся, кажется, по ссылке, потому как
после нажатия любой кнопки на UI ф-ция вызывается с параметром 0

однако, метод clone для чисел не поддерживается

как передать параметр по значению?

Автор: Pete 21.11.2008, 00:30
Числа передаются по значению.
Т.е.
Код

a = 3
def f(a)
  a = 4
end
a  #=> 3


ЗЫ: зачем, только начав учить язык, сразу пытаться прикручивать гуёвые либы?)

Автор: and_hom 25.11.2008, 12:49
Цитата(Pete @ 21.11.2008,  00:30)
зачем, только начав учить язык, сразу пытаться прикручивать гуёвые либы?

А в ruby это так сложно? просто стало интересно, насколько язык применим в настольном варианте.

А если числа передаются по значению, в чём тогда моя проблема? Почему  в итоге при вызове callback-а кнопки получается всегда последнее число?

Автор: source777 26.11.2008, 22:11
Цитата(and_hom @  25.11.2008,  12:49 Найти цитируемый пост)
А в ruby это так сложно? 

Это везде сложно, ни один язык не начинают учить с создания GUI-приложений... Т.к. интерфейс отвлекает от сути изучаемого... и приводит к таким вот дурацким вопросам, в которых приводят обрывок кода, да ещё и делают из него какие-то выводы, естественно неправильные... Изучи сначала сам язык, и тогда уже сможешь консолью не ограничиваться.


Автор: pompei 3.9.2009, 10:17
Цитата(Pete @ 21.11.2008,  00:30)
Числа передаются по значению.
Т.е.
Код

a = 3
def f(a)
  a = 4
end
a  #=> 3


ЗЫ: зачем, только начав учить язык, сразу пытаться прикручивать гуёвые либы?)

Числа тоже передаются по ссылке. Просто вргумент функции - это уже новая переменная, и при изменении её значения, предыдущая переменная не трогается вообще и также ссылается на 3

ЗЫ. В руби всё - есть объект!!!

Автор: GrayCardinal 3.9.2009, 11:11
pompei
У нас прогнившие трупы поднимать не принято  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)