Как динамично назвать методы доступа в Ruby [дубликат]

К сожалению, такой сценарий плохо поддерживается Java 8 Stream API. Моя библиотека StreamEx добавляет несколько вспомогательных методов для работы с такими потоками: IntStreamEx.charsToString() , IntStreamEx.codePointsToString() и IntStreamEx.toCharArray() . Также я представил примитивные коллекторы, такие как IntCollector , которые могут помочь в сборе примитивных потоков каким-то нетривиальным способом.

Вот как ваша задача может быть решена с помощью библиотеки StreamEx:

String result = IntStreamEx.ofChars(s).filter(Character::isLetter).charsToString();

Или с кодовыми точками:

String result = IntStreamEx.ofCodePoints(s)
                           .filter(Character::isLetter)
                           .codePointsToString();

25
задан Joe Zack 7 March 2009 в 02:24
поделиться

2 ответа

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

instance.send("a=", "value")
52
ответ дан Angela 28 November 2019 в 18:21
поделиться

Можно также непосредственно получить доступ к переменным экземпляра объекта с помощью instance_variable_* функции:

instance = Test_Class.new                 # => #<Test_Class:0x12b3b84>

# instance variables are lazily created after first use of setter,
# so for now instance variables list is empty:
instance.instance_variables                # => []

instance.instance_variable_set(:@a, 123)   # => 123
instance.a                                 # => 123
instance.instance_variables                # => ["@a"]
instance.instance_variable_get("@a")       # => 123
11
ответ дан Marcin Urbanski 28 November 2019 в 18:21
поделиться
Другие вопросы по тегам:

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