Ruby/Tk vs zmienne globalne
Ostatnio zmodyfikowano 2017-03-26 15:59
mac104 Temat założony przez niniejszego użytkownika |
Ruby/Tk vs zmienne globalne » 2017-03-25 17:34:28 Zastanawia mnie czy w bibliotece Tk w Ruby da się zrobić jakiś program pamiętający dane (a nie tylko wyświetlający "Hello World") bez użycia zmiennych globalnych (ewentualnie statycznych ale to też w zakresie ograniczonym do jednej kontrolki). Pytam się, bo tyle się naczytałem że zmienne globalne są złe. Kontrolki są obsługiwane przez swoje metody, które przyjmują jako argumenty zdarzenia, więc nie da się tam niczego wcisnąć inaczej niż globalnie... |
|
mac104 Temat założony przez niniejszego użytkownika |
» 2017-03-26 15:59:33 Sam doszedłem do tego że się da i to w bardzo prosty sposób: require 'tk' root = TkRoot.new {title "Okno"} a = nil button = TkButton.new(root) { text "Przycisk" pack } button.bind('ButtonRelease-1') { puts a } a = 3 Tk.mainloop
|
Wyjście konsoli po naciśnięciu "Przycisku": 3 Myślałem że mamy tu deklarację metody 'bind', w której nie można by było używać zewnętrznych zmiennych lokalnych, ale jest to prawdopodobnie wywołanie tej metody z blokiem - i widać że jestem bardziej przyzwyczajony do C niż do Ruby :) |
|
« 1 » |