JavaRush /Blog Jawa /Random-JV /KotlinRush: apa ana gunane terus nulis nganggo basa Jawa?...
NikEy
tingkat
Новосибирск

KotlinRush: apa ana gunane terus nulis nganggo basa Jawa?

Diterbitake ing grup
Halo, mahasiswa JavaRush, sadurunge sampeyan nyerep Java, aku pengin nggedhekake wawasan lan narik kawigaten marang basa Kotlin sing saya populer !
KotlinRush: apa ana gunane terus nulis nganggo basa Jawa?  - 1
Kotlin minangka basa sing cukup enom sing dikembangake dening JetBrains . Ya, ya, perusahaan sing padha sing ngembangake IDE favorit: IntelliJ IDEA. Kotlin minangka basa JVM lan kompatibel karo Java , yaiku, saka kode Kotlin sampeyan bisa ngakses perpustakaan Java sing akrab. Kotlin misuwur banget karo komunitas pemrograman nganti Google ngakoni minangka basa pangembangan resmi kanggo Android, lan bubar Kotlin wis mulai populer ing proyek perusahaan. Ing artikel iki, aku pengin menehi sawetara conto komparatif kode sing ditulis ing Kotlin lan Jawa, lan nggawe sawetara kesimpulan. Tindak! Ayo miwiti, kaya biasane, karo "Hello World"
// Java
public class Application {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
// Kotlin
class Application
fun main(vararg args: String) {
    println("Hello World!")
}
Deleng conto Kotlin, kita bisa langsung nyathet ing ngisor iki:
  • ora perlu nulis titik koma ing pungkasan baris;
  • kabeh cara diterangake kanthi tembung kunci sing nyenengake ;
  • Kanggo nyithak baris, mung siji tembung cukup - println() !
Nggawe Instance
// Java (до 10)
final Application application = new Application();
// Kotlin
val application = Application()
Bedane Kotlin:
  • ora perlu ngumumake jinis variabel yen jelas saka conto kasebut;
  • tinimbang jinis variabel - val (ora owah) utawa var (bisa diganti);
  • Sampeyan ora perlu nulis tembung kunci anyar kanggo nggawe conto !
Katrangan cara
// Java
public int sum(int a, int b) {
    return (a + b);
}
// Kotlin
fun sum(a: Int, b: Int): Int {
return (a + b)
}
Bedane Kotlin:
  • yen ana sing kudu bali saka cara, " : Int "ditambahake menyang teken, ing ngendi Int minangka jinis bali;
  • deskripsi paramèter metode: pisanan jeneng variabel, banjur jinis;
  • amarga awak metode mung kalebu siji baris, sampeyan bisa ngilangi bali :
    fun sum(a: Int, b: Int): Int = (a+b)
Output string sing diformat
// Java
public int sum(int a, int b) {
    int result = (a + b);
    System.out.printf("Сумма %d и %d равна %d\n", a, b, result);
    return result;
}
// Kotlin
fun sum(a: Int, b: Int): Int {
    val result = (a + b)
    println("Сумма $a и $b равна $result")
    return result
}
Kotlin ndhukung interpolasi string, mung nggunakake simbol "$" ing awal variabel. Notasi iki kanthi signifikan ningkatake karesikan lan keterbacaan kode kasebut. Perbandingan Kayata
// Java
object1.equals(object2)
// Kotlin
object1 == object2
Ing Kotlin, perbandingan " ==" kanggo jinis obyek diterjemahake menyang equals! Lan kanggo mbandhingake pranala, " ===" digunakake. Pangecualian
// Java
public List<String> getFileContent(String file) throws IOException {
    Path path = Paths.get(file);
    return Files.readAllLines(path);
}
// Kotlin
fun getFileContent(file: String): List<String> {
    val path = Paths.get(file)
    return Files.readAllLines(path)
}
Ora ana pangecualian sing dicenthang ing Kotlin ; saiki sampeyan ora perlu mbuwang pangecualian tanpa wates ing kabeh aplikasi utawa nggawe pangecualian multi-level try-catch. Null Safety
// Java
public class Data {
    String value;

    String render() {
        if (value == null) {
            return "Value: undefined";
        } else {
            return "Value:" + value.toUpperCase();
        }
    }
}
// Kotlin
class Data {
    var value: String? = null
    fun render(): String =
            "Value: ${value?.toUpperCase() ?: "undefined"}"
}
Kotlin ngurusi masalah NPE lan ngenalake sawetara syarat:
  • kabeh kolom lan variabel kelas kudu diinisialisasi;
  • Sampeyan bisa nulis "null" ing lapangan utawa variabel, nanging sampeyan kudu kanthi tegas nyatakake yen variabel sampeyan Nullable (tulis tandha "?");
  • Operator Elvis "?:" dianggo kaya iki: yen ana Null ing sisih kiwa, njupuk apa ing sisih tengen. Ing kasus conto, nalika variabel nilai ora diwiwiti, nilai " ora ditemtokake " bakal dijupuk.
Lapangan kelas lan akses menyang
// Java
public class Data {
    private String value;

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}
class App {
    void execute() {
           Data data = new Data()
           data.setValue("Foo")
     }
}
// Kotlin
class Data {
    var value: String = ""
}
class App {
    fun execute() {
          val data = Data()
          data.value = "Foo" // Под капотом выполнится data.set("Foo")
     }
}
Ing Kotlin, cukup mung njlèntrèhaké lapangan lan iku: wis ana getter lan setter implisit (hello lombok ), sing bisa diganti kapan wae yen dikarepake. Ing wektu sing padha, kita maca lan ngowahi nilai lapangan mung kanthi ngakses langsung, lan ing hood diarani get()|set(). Siklus
// Java
void example() {
    for(int i = 1; i <= 10; i++) {
        System.out.println(i);
    }

    for(String line : "a,b,c".split(",")) {
        System.out.println(line);
    }
}
// Kotlin
fun example() {
    for(i in 1..10) {
        println(i)
    }

    for(line in "a,b,c".split(",")) {
        println(line)
    }
}
Kotlin wis nyedhiyakake sintaks sing trep lan seragam kanggo ngliwati urutan: sampeyan mung nggunakake variabel ing sisih kiwa , urutan ing sisih tengen , lan tembung kunci " ing " ing antarane, jinis kasebut ditemtokake kanthi otomatis dening isi. Singleton
// Java
public class Singleton {
    private static Singleton ourInstance = new Singleton();

    public static Singleton getInstance() {
        return ourInstance;
    }

    private Singleton() {
    }
}
class App {
    void execute() {
         Singleton singleton = Singleton.getInstance()
    }
}
// Kotlin
object Singleton {}

class App {
    fun execute() {
          val singleton = Singleton
    }
}
Pola " singler " sing dikenal kerep digunakake ing praktik, mula Kotlin mutusake nggawe tembung kunci " obyek " sing kapisah, sing ditulis tinimbang " kelas " lan tegese kelas kasebut minangka singleton; yen digunakake, sampeyan ora ngerti. kudu nelpon konstruktor utawa cara liyane! Parameter metode sing dijenengi lan nilai standar
// Java
void setStatus(String code) {
    setStatus(code, "");
}

void setStatus(String code, String desc) {
    this.code = code;
    this.desc = desc;
}
// Kotlin
fun setStatus(code: String, desc: String = "") {
    this.code = code;
    this.desc = desc;
}

fun execute() {
    setStatus("200")
    setStatus(code = "200", desc = "Ok")
}
Mengkono ora kabeh paramèter ing cara utawa konstruktor kudu dibutuhake, lan ing Jawa kita digunakake kanggo nggawe pesawat saka cara utawa konstruktor kanggo saben kombinasi paramèter bisa. Parameter standar wis dienal ing Kotlin, sing ngidini sampeyan ngumumake 1 cara lan ngirim paramèter sing dibutuhake gumantung saka kahanan kasebut. lepen
// Java
String getFirst(List<String> strings, String alpha) {
    return strings.stream()
            .filter(x -> x.startsWith(alpha))
            .findFirst()
            .orElse("");
}
// Kotlin
fun getFirst(strings: List<String>, alpha: String): String {
    return strings.first { it.startsWith(alpha) }
}
Introduksi stream ing Java 8 wis dadi fungsi integral nalika nggarap koleksi. Ing Kotlin, stream digawe luwih trep lan fungsional: saben koleksi wis duwe set metode sing trep lan asring digunakake kanggo nggarap data. Uga, sok dong mirsani ekspresi lambda ing cara pisanan: yen fungsi literal duwe persis siji parameter, deklarasi kasebut bisa dibusak (bebarengan karo ->), lan diarani  minangka . Iku wektu kanggo Lebokake munggah ... Aku nuduhake mung cilik, bagean dhasar saka fungsi, nanging aku manawa sampeyan wis pengin nyoba Kotlin! Saka pengalaman, aku bisa nggawe kesimpulan ing ngisor iki:
  • Gampang banget kanggo pangembang Jawa nguwasani sintaksis Kotlin lan miwiti nulis kode;
  • Kotlin kompatibel karo Jawa, lan sampeyan wis bisa nyoba ing proyek sing wis ana, contone, ing tes;
  • Kode Kotlin luwih resik lan luwih bisa diwaca, sampeyan ora perlu nulis akeh boilerplate ;
  • IDEA nduweni konverter Java to Kotlin otomatis, sampeyan bisa njupuk kode Jawa sing wis siap lan kanthi otomatis ngowahi dadi Kotlin;
  • proyek anyar kudu ditulis ing Kotlin, amarga saka sudut pandang infrastruktur iku padha karo Jawa, nanging ing syarat-syarat nggunakake iku luwih apik lan luwih trep!
Yen sampeyan seneng karo artikel kasebut lan umume cocog karo sumber babagan Jawa, aku bisa terus nulis babagan pengalaman nggunakake Kotlin ing proyek perusahaan nyata. Pranala migunani:
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION