Menu
Coddy logo textTech

Praca z plikami

Część sekcji Programowanie obiektowe ścieżki Kotlin w Coddy. Lekcja 1 z 57.

Prawdziwe programy są podzielone na kilka plików. Wszystkie pliki .kt programu Kotlin są kompilowane razem, więc funkcji lub klasy zadeklarowanej w jednym pliku można użyć w dowolnym innym pliku tego samego pakietu bez importu:

// Greeting.kt
fun greeting(name: String) = "Hello, $name!"

// Main.kt
fun main() {
    println(greeting("Ada"))
}

Uruchomienie tego programu wypisuje Hello, Ada!: funkcja main w pliku Main.kt wywołuje funkcję znajdującą się w pliku Greeting.kt.

Plik Kotlin zawiera wyłącznie deklaracje: klasy, funkcje, właściwości. Instrukcje takie jak println(...) muszą znajdować się wewnątrz funkcji. Program rozpoczyna się od fun main(), która zgodnie z konwencją znajduje się w pliku Main.kt:

// Greeting.kt
fun greeting(name: String) = "Hello, $name!"
// println("hi")            // błąd: instrukcje muszą znajdować się wewnątrz funkcji

// Main.kt
fun main() {
    val name = readLine() ?: "friend"
    println(greeting(name))
}

Typowy układ to jedna klasa na plik, nazwany tak jak klasa: Dog.kt zawiera Dog, a Account.kt zawiera Account. W wyzwaniach z tej sekcji Twój kod trafia do tych plików, a Main.kt zawiera dostarczony kod wejścia/wyjścia, którego zazwyczaj nie możesz edytować. Edytor wyświetla każdy plik jako kartę.

Dog.kt        // class Dog(...) { ... }
Account.kt    // class Account { ... }
Main.kt       // fun main(): odczytuje dane wejściowe i wypisuje wyniki

Widoczność obejmuje również pliki. Deklaracja na najwyższym poziomie oznaczona jako private jest widoczna tylko w swoim pliku, natomiast domyślne public sprawia, że jest widoczna w każdym pliku:

// Secret.kt
private const val SALT = "x7"        // tylko ten plik ma do niego dostęp
fun hashed(s: String) = s + SALT

// Main.kt
fun main() {
    println(hashed("pw"))            // w porządku: hashed jest publiczna
    // println(SALT)                 // błąd: SALT jest prywatna w Secret.kt
}
challenge icon

Wyzwanie

Łatwy

Program składa się z dwóch plików. main w pliku Main.kt odczytuje imiona i wyświetla wynik działania greeting(name). Uzupełnij greeting w pliku Greeting.kt, tak aby zwracała Hello, Ada! dla imienia Ada lub Hello, friend!, gdy imię jest puste.

Twój kod umieść w pliku Greeting.kt. Main.kt zawiera dostarczony kod wejścia/wyjścia i nie można go edytować.

Spróbuj swoich sił

fun main() {
    // Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
    val input = generateSequence(::readLine).toList()
    for (name in input) println(greeting(name))
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Edytor online Kotlin