Существует ли что-то вроде CHESS для Java? [закрыто]

Обратите внимание, что все это относится к каждой паре «коротких» (например, to_s / to_i / to_a / to_h) против «long» (например, to_str / to_int / to_ary / to_hash) в Ruby (для их соответствующих типов), поскольку все они имеют одинаковую семантику.


Они имеют разные значения. Вы не должны реализовывать to_str, если ваш объект не действует , как строка, а не просто , представляемый строкой. Единственным основным классом, который реализует to_str, является сама строка.

Из Programming Ruby (цитируется из в этом сообщении в блоге , в котором стоит прочитать все ):

[to_i и to_s] не являются особенно строгими: если у объекта есть какое-то достойное представление в виде строки, например, у него, вероятно, будет to_s метод ... [to_int и to_str] являются строгими функциями преобразования: вы реализуете их только в том случае, если [ваш] объект может быть естественным образом использован в каждом месте, где может использоваться строка или целое число.

blockquote>

Документация Older Ruby из файла Pickaxe гласит:

В отличие от to_s, который поддерживается почти всеми классами, to_str обычно реализуется только те классы, которые действуют как строки.

blockquote>

Например, в дополнение к Integer оба Float & amp; Числовой реализует to_int (to_i эквивалент to_str), потому что оба они могут легко заменить Integer (все они фактически являются числами). Если ваш класс не имеет тесных отношений с String, вы не должны реализовывать to_str.

15
задан weegee 17 August 2019 в 23:34
поделиться