Menu
CoddyTech

Praca z plikami

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

Rzeczywiste programy są podzielone na kilka plików. Wszystkie pliki .kt programu Kotlin są kompilowane razem, dlatego 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 wyświetla Hello, Ada!: funkcja main w pliku Main.kt wywołuje funkcję z pliku Greeting.kt.

Plik Kotlin zawiera tylko 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, a plik jest nazwany na cześć klasy: Dog.kt zawiera Dog, a Account.kt zawiera Account. W wyzwaniach w tej sekcji umieszczasz swój kod w tych plikach, 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ść dotyczy również plików. Deklaracja na najwyższym poziomie oznaczona jako private jest widoczna tylko we własnym pliku, podczas gdy domyślne public sprawia, że jest widoczna w każdym pliku:

// Secret.kt
private const val SALT = "x7"        // tylko ten plik ma do tego 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 wypisuje wynik działania greeting(name). Uzupełnij funkcję 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. Plik 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