Это старый трюк, который использует тот факт, что большинство (все?) Кодировки символов имеют буквы Engli sh в алфавитном порядке c и последовательные. Вот пример таблицы ASCII .
Как видите, 'a'
имеет заданное числовое значение. Это значение, которое вы получите, если преобразовать символ в число в Kotlin (что неявно делается в предоставленном вами коде). Если вы вычтете его (it - 'a'
), вы получите 0 для 'a'
, 1 для 'b'
, 2 для 'c'
и так далее. Это их позиция алфавита со смещением, равным единице, поэтому есть +1, который фиксирует это смещение, поэтому теперь it - 'a' + 1
возвращает число, такое как 'a'
= 1, 'b'
= 2, et c. ..
Обратите внимание, что этот трюк не будет работать для не-Engli sh алфавитов.