IP
Size: a a a
IP
VN
I
DA
open class File(var name: String, var size: Int)я хочу создать его класс-наследник архив, куда будут передаваться разные файлы
class Archive(name: String, var files: List<File>): File(name, ???)для создания
File
мне нужно заранее знать его размер, и я могу это подсчитать в момент инициализации, к примеру с помощью функцииfun calc_size(): Int{как это реализовать, что подставить вместо ???
var sum = 0
for (f in files)
sum += f.size
return sum
}
AL
open class File(var name: String, var size: Int)я хочу создать его класс-наследник архив, куда будут передаваться разные файлы
class Archive(name: String, var files: List<File>): File(name, ???)для создания
File
мне нужно заранее знать его размер, и я могу это подсчитать в момент инициализации, к примеру с помощью функцииfun calc_size(): Int{как это реализовать, что подставить вместо ???
var sum = 0
for (f in files)
sum += f.size
return sum
}
fun main() {
val file1 = File("abc", 4)
val file2 = File("cde", 2)
val archive1 = Archive("def", listOf(file1, file2))
val file3 = File("qwe", 6)
val archive2 = Archive("asd", listOf(file3, archive1))
println(archive2.size)
val altFile1 = SimpleFile("abc", 4)
val altFile2 = SimpleFile("cde", 2)
val altArchive1 = ArchiveFile("def", listOf(altFile1, altFile2))
val altFile3 = SimpleFile("qwe", 6)
val altArchive2 = ArchiveFile("asd", listOf(altFile3, altArchive1))
println(altArchive2.size)
}
open class File(val name: String, val size: Int)
class Archive(name: String, val files: List<File>): File(name, calculateSize(files))
fun calculateSize(files: List<File>) = files.sumBy { it.size }
sealed class AltFile {
abstract val name: String
abstract val size: Int
}
class SimpleFile(override val name: String, override val size: Int): AltFile()
class ArchiveFile(override val name: String, val files: List<AltFile>): AltFile() {
override val size by lazy { files.sumBy { it.size } }
}
DA
fun main() {
val file1 = File("abc", 4)
val file2 = File("cde", 2)
val archive1 = Archive("def", listOf(file1, file2))
val file3 = File("qwe", 6)
val archive2 = Archive("asd", listOf(file3, archive1))
println(archive2.size)
val altFile1 = SimpleFile("abc", 4)
val altFile2 = SimpleFile("cde", 2)
val altArchive1 = ArchiveFile("def", listOf(altFile1, altFile2))
val altFile3 = SimpleFile("qwe", 6)
val altArchive2 = ArchiveFile("asd", listOf(altFile3, altArchive1))
println(altArchive2.size)
}
open class File(val name: String, val size: Int)
class Archive(name: String, val files: List<File>): File(name, calculateSize(files))
fun calculateSize(files: List<File>) = files.sumBy { it.size }
sealed class AltFile {
abstract val name: String
abstract val size: Int
}
class SimpleFile(override val name: String, override val size: Int): AltFile()
class ArchiveFile(override val name: String, val files: List<AltFile>): AltFile() {
override val size by lazy { files.sumBy { it.size } }
}
AM
ГА
LS
inline fun <reified T : KouchEntity> encode(
entity: T
) = Json.encodeToJsonElement(entity)
с#
inline fun <reified T : KouchEntity> encode(
entity: T
) = Json.encodeToJsonElement(entity)
LS
с#
LS
AM
FO
AN
${"$"}
в доке естьAN
\$
в обычных строках. То, что я написал, это для raw stringsFO
${"$"}
в доке естьFO
AM