Ruby class_eval метод

Ни один из ответов не работал для меня, но это то, что наконец-то сработало после того, как я установил android: fitsSystemWindows = "false"

в макете родительской активности, это не рекомендуется во многих местах, но это работа для меня и сохранить мой день

13
задан Bob 11 January 2010 в 09:03
поделиться

2 ответа

define_method(m) do |*values|
  puts value
end
-121--2498578-

Я не знаю, может ли GSON выполнять потоковую/инкрементную привязку (я думал, что это не так).

Но есть ли конкретная причина рассматривать только эту конкретную библиотеку? Другие библиотеки обработки Java JSON действительно позволяют такую обработку (вы можете проверить ссылки другой ответ на некоторые идеи), так как это довольно важная функция при обработке больших каналов.

-121--3909895-

Существует два приемлемых способа:

  1. Используйте define _ method :

     @ arr.each do | method |
    self.class.class_eval делать
    define_method метод do | * arguments |
    ставит аргументы
    конец
    конец
    конец
    
  2. Используйте class _ eval с аргументом последовательности:

     @ arr.each do | method |
    self.class.class_eval < < -ОЦЕНКА
    def # {метод} (* аргументы)
    ставит аргументы
    конец
    ОЦЕНКА
    конец
    

Первая опция преобразует замыкание в метод, вторая - оценивает последовательность (heredoc) и использует регулярную привязку метода. Второй вариант имеет очень небольшое преимущество в производительности при вызове методов. Первый вариант (возможно) немного удобочитаем.

28
ответ дан 1 December 2019 в 20:00
поделиться
define_method(m) do |*values|
  puts value
end
4
ответ дан 1 December 2019 в 20:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: