Я новичок в Kotlin и хотел вернуть несколько значений из функции.
Я проверил этот пост:
Как мы возвращаем несколько значений из функции в Kotlin, как мы это делаем в Swift? Я использую функцию рекурсии, в которой мне не нужно использовать var или val при получении возвращаемых значений.
Мой код:
private fun folderSizeInBytes(directory: File): Pair<Long, Int> {
var length: Long = 0
var size : Int = 0
for (file in directory.listFiles().orEmpty()) {
if (file.isFile) {
length += file.length()
size++
}
else
(size,length) = folderSizeInBytes(file)
}
return Pair(length, size)
}
Но на (size,length) = folderSizeInBytes(file) есть ошибка, говорящая о неожиданных токенах. Можно ли сделать это без воссоздания размера и длины или объекта Pair?
Вы получаете сообщение об ошибке, поскольку не назначили никакую переменную. поэтому (size,length) = folderSizeInBytes(file) измените его на val (l,s) = folderSizeInBytes(file), и тогда вы сможете использовать переменные l и s и выполнять в них операции.





Я думаю, что на данный момент поддерживаются только декларации деструктуризации