ลำดับ
บทความนี้ส่วนใหญ่ให้ตัวอย่างหลายประการว่า Kotlin สามารถปรับปรุงรหัส Java ได้อย่างไร
ตัวอักษรสตริงและเทมเพลต
สตริงค่าตัวอักษร
@Test fun testStringLiterals () {val a = "" "ถ้า (a> 1) {| return a |}" ". trimmargin () println (a) val b =" "foo bar" "". trimindent () println (b)}}ด้วยตัวอักษรสตริงคุณไม่จำเป็นต้องใช้ความพยายามอย่างมากในการประกบสายถ้าคุณเขียน SQL
เทมเพลตสตริง
@Test Fun TestStringTemplate () {val name = "Hello Kotlin" println ("สวัสดี, $ name!"); val data = listof (1,2,3) println ("สวัสดี, $ {data [0]}!")}เทมเพลตสตริงนี้มีประสิทธิภาพยิ่งขึ้นเทียบเท่ากับ freemarker ในตัวและไม่จำเป็นต้องผ่านค่าตัวแปรด้วยตนเอง
รับดัชนีปัจจุบันในการวนรอบ
@Test fun testforeachIndex () {val items = listof ("Apple", "Banana", "kiwifruit") สำหรับ (index in items.indices) {println ("รายการที่ $ index คือ $ {items [index]}")}}}}}}}}}}}}}ใน Java หากคุณต้องการรับดัชนีสำหรับแต่ละลูปคุณต้องประกาศดัชนีภายนอกและนับมันด้วยตัวเอง มันอึดอัดเกินไป
คลาสข้อมูล
// สร้าง Getter/Setter, Equals, HashCode, ToString, Copy, ฯลฯ // Setter มีลูกค้าคลาสข้อมูลเท่านั้น (ชื่อ VAL: String, Val Email: String) @Test Fun TestDataClass () {val customer = ลูกค้า ("admin", "[email protected]") println (ลูกค้า)}}} Java ประกาศ Getter/Setter เสมอ ข้อได้เปรียบคือคุณสามารถค้นหาวิธีการเหล่านั้นใน IDE ที่เรียกว่า getter/setter;
แม้ว่า Lombok สามารถสร้าง getter/setter โดยอัตโนมัติและคำอธิบายประกอบ @Data ยังสามารถสร้างวิธีการที่เท่ากัน/hashcode แต่ Lombok ก็ไม่สะดวกในการค้นหาวิธีการเหล่านั้นใน IDE ซึ่งเรียกว่า Getter/Setter; คลาสข้อมูลของ Kotlin ช่วยให้คุณแก้ปัญหาเหล่านี้ได้
ความปลอดภัยว่างเปล่า
@Test fun teverTifNotNull () {val files = file ("test"). listfiles () println (ไฟล์?ความปลอดภัยที่เป็นโมฆะนี้มีประโยชน์มากมันค่อนข้างกระชับกว่าการแสดงออกของ Ternary ของ Java เมื่อนิพจน์เป็นจริงคุณไม่จำเป็นต้องทำซ้ำเนื้อหาที่จะส่งคืนเพียงแค่เขียนส่วนอื่น
ความปลอดภัย NULL มีประโยชน์มากขึ้นเมื่อสตรีมมิ่ง/การโทรถูกล่ามโซ่
// ถ้าหนึ่งใน `person` หรือ` person.department 'ว่างเปล่าฟังก์ชั่นจะไม่ถูกเรียก: บุคคล?
สรุป
บทความนี้ให้ตัวอย่างเล็ก ๆ น้อย ๆ ของ Kotlin ที่สามารถปรับปรุงรหัส Java Kotlin มีพลังมากเกินไปและเป้าหมายคือการแทนที่ Java การออกแบบหลายอย่างสามารถมองเห็นเงาของสกาล่าได้ แต่ก็มีเวทมนตร์สีดำมากมายและเส้นโค้งการเรียนรู้ก็สั่นเล็กน้อย แต่ก็โอเคถ้าคุณไม่ได้ใช้ไวยากรณ์ขั้นสูงเกินไป
ข้อมูลอ้างอิงที่เกี่ยวข้อง: https://www.kotlincn.net/docs/reference/