Обновить

Реализация дружественных классов на Kotlin

Класс A объявлен в библиотечном модуле, свойства с модификатором internal доступны только внутри одного модуля:

class A {
    internal val foo: String = "bar"
}

interface AFriend {
    val A.foo get() = foo
}

Класс B объявлен в другом модуле, но получает доступ к свойству foo через расширение в интерфейсе AFriend.

class B : AFriend {
    fun printFoo() {
        println(A().foo)
    }
}

fun main() {
    B().printFoo() // print bar
}

Всего голосов 4: ↑4 и ↓0+4
Комментарии3

Microsoft представила WSL 3.0 с поддержкой запуска Linux-контейнеров в Windows

Microsoft представила подсистему Windows для Linux (Windows Subsystem for Linux - WSL) 3.0, позволяющую запускать Linux‑приложения в Windows. Новая ветка примечательна реализацией возможности для запуска Linux‑контейнеров в Windows и переходом на ядро Linux 6.18. Исходный код применяемых в WSL утилит командной строки, фоновых процессов для Linux‑окружений, графического стека wslg, сервисов для запуска контейнеров и виртуальной машины опубликован на GitHub под лицензией MIT. Версия WSL 2.0 вышла в сентябре 2023 года.

Microsoft представила WSL 3.0 с поддержкой запуска Linux-контейнеров в Windows

Публикации