нашёл это: val steps = data[3..6].toInt(), где data это ByteArray, что произойдет после этой операции?
перегружен оператор доступа до индексу, и принимаемый аргумент в нем - range
как мне кажется, это плохой код, и вот почему: касательно []: в котлине есть 2 подхода для слайсов, на примере листа это subList (делает проекцию списка, но не копирует его, т.е. любое изменение тут приведёт к изменению родительского списка и наоборот) и slice (который делает безопасную копию). Какой из этих вариантов тут? Нуу, неизвестно. Да, котлиновские массивы не умеют в проекции без копии, но и написать data.sliceArray(3..6) не очень сложно. Касательно .toInt() всё ещё проще: не понятно какой формат тут используется - big endian | little endian. Имхо, лучше это уточнить в названии экстеншена. для будущих поколений лучше было бы написать data.sliceArray(3..6).toIntLittleEndian()
А причём тут порядок байтов? Про него не сказано в вопросе.
экстеншен ByteArray.toInt, который там явно есть, вызывает много вопросов.
При том, что есть больше одного способа превратить 4 байта в Int
Даже больше двух. Хотя остальные маргинальные
А, да, понял. Ты прав
Обсуждают сегодня