Sama seperti String di Java, Kotlin String adalah obyek immutable yang berarti sekali diinisialisasi, valuenya tidak akan bisa diubah. Jika dilakukan assignment value baru, yang sebenarnya terjadi adalah JVM akan membuat obyek String baru dengan value yang diassign.
Seperti halnya dengan Java, String literal di Kotlin juga dimulai dengan tanda petik ganda (").
Hanya saja class String di Kotlin memeliki beberapa kelebihan dibanding String di Java.
Diantaranya:
String kode = "Sebenarnya hubungan kita ini apa sih?"; // misalkan object di memory adalah ABC kode = "Oke, besok aku datang ke Ayah kamu"; // object yang ada di memory saat ini adalah XYZ
Seperti halnya dengan Java, String literal di Kotlin juga dimulai dengan tanda petik ganda (").
Hanya saja class String di Kotlin memeliki beberapa kelebihan dibanding String di Java.
Diantaranya:
- Setiap element character dari string bisa diakses dengan array syntax
eg: kode[index], sedangkan di Java kode.charAt(index)
Untuk iterasi tiap element
Javafor (char c : kode.toCharArray()) { System.out.println(c); }
Kotlinfor (c in kode) { println(c) }
- String template, yakni dalam string literal bisa disisipkan kode untuk dievaluasi nilainya.
Di Scala ada fitur yang serupa bernama String interpolation.
Jika di Java kita biasa menulis seperti iniSystem.out.println( String.format("Panjang karakter dari (%s) adalah %d", kode, kode.length()));
Di Kotlin kita bisa menulis seperti iniprintln("Panjang karakter dari ($kode) adalah ${kode.length}")
- Multiline String literal,
Bagi kita yang biasa menulis string panjang seperti query mungkin agak kurang nyaman
dengan tidak adanya fitur multiline string di Java, padahal sudah banyak request masuk untuk menyediakan fitur ini.
JavaSystem.out.println("SELECT '" + kode + "', '" + kode.length() + "'" + " FROM tablename" + " WHERE blabla");
Kotlinprintln("""SELECT '$kode', '${kode.length}' FROM tablename WHERE blabla""")
Comments
Post a Comment