Kotlin - ประเภทพื้นฐาน

ในบทนี้เราจะเรียนรู้เกี่ยวกับประเภทข้อมูลพื้นฐานที่มีอยู่ในภาษาโปรแกรมของ Kotlin

ตัวเลข

การแสดงตัวเลขใน Kotlin ค่อนข้างคล้ายกับ Java อย่างไรก็ตาม Kotlin ไม่อนุญาตให้มีการแปลงข้อมูลประเภทต่างๆภายใน ตารางต่อไปนี้แสดงความยาวตัวแปรที่แตกต่างกันสำหรับตัวเลขที่ต่างกัน

ประเภท ขนาด
สองเท่า 64
ลอย 32
ยาว 64
Int 32
สั้น 16
ไบต์ 8

ในตัวอย่างต่อไปนี้เราจะดูว่า Kotlin ทำงานกับประเภทข้อมูลต่างๆอย่างไร โปรดป้อนชุดรหัสต่อไปนี้ในพื้นที่การเข้ารหัสของเรา

fun main(args: Array<String>) {
   val a: Int = 10000
   val d: Double = 100.00
   val f: Float = 100.00f
   val l: Long = 1000000004
   val s: Short = 10
   val b: Byte = 1
   
   println("Your Int Value is "+a);
   println("Your Double  Value is "+d);
   println("Your Float Value is "+f);
   println("Your Long Value is "+l);
   println("Your Short Value is "+s);
   println("Your Byte Value is "+b);
}

เมื่อคุณรันโค้ดด้านบนในส่วนการเข้ารหัสโค้ดจะสร้างเอาต์พุตต่อไปนี้ในเว็บคอนโซล

Your Int Value is 10000
Your Double  Value is 100.0
Your Float Value is 100.0
Your Long Value is 1000000004
Your Short Value is 10
Your Byte Value is 1

อักขระ

Kotlin แสดงถึงอักขระโดยใช้ char. ควรประกาศตัวอักษรในเครื่องหมายคำพูดเดียวเช่น‘c’. โปรดป้อนรหัสต่อไปนี้ในพื้นที่การเข้ารหัสของเราและดูว่า Kotlin ตีความตัวแปรอักขระอย่างไร ไม่สามารถประกาศตัวแปรอักขระเหมือนตัวแปรตัวเลข ตัวแปร Kotlin สามารถประกาศได้สองวิธี - หนึ่งโดยใช้“var” และอื่น ๆ โดยใช้ “val”.

fun main(args: Array<String>) {
   val letter: Char    // defining a variable 
   letter = 'A'        // Assigning a value to it 
   println("$letter")
}

โค้ดด้านบนจะให้ผลลัพธ์ต่อไปนี้ในหน้าต่างเอาต์พุตของเบราว์เซอร์

A

บูลีน

บูลีนนั้นง่ายมากเหมือนกับภาษาโปรแกรมอื่น ๆ เรามีเพียงสองค่าสำหรับบูลีน - จริงหรือเท็จ ในตัวอย่างต่อไปนี้เราจะเห็นว่า Kotlin ตีความ Boolean อย่างไร

fun main(args: Array<String>) {
   val letter: Boolean   // defining a variable 
   letter = true         // Assinging a value to it 
   println("Your character value is "+"$letter")
}

โค้ดด้านบนจะให้ผลลัพธ์ต่อไปนี้ในเบราว์เซอร์

Your character value is true

สตริง

สตริงคืออาร์เรย์อักขระ เช่นเดียวกับ Java พวกมันไม่เปลี่ยนรูปตามธรรมชาติ เรามีสตริงสองชนิดที่มีอยู่ใน Kotlin - หนึ่งเรียกว่าraw String และอีกชื่อหนึ่งเรียกว่า escaped String. ในตัวอย่างต่อไปนี้เราจะใช้ประโยชน์จากสตริงเหล่านี้

fun main(args: Array<String>) {
   var rawString :String  = "I am Raw String!"
   val escapedString : String  = "I am escaped String!\n"
   
   println("Hello!"+escapedString)
   println("Hey!!"+rawString)   
}

ตัวอย่างข้างต้นของ Escape String อนุญาตให้มีพื้นที่บรรทัดพิเศษหลังจากคำสั่งพิมพ์ครั้งแรก ต่อไปนี้จะเป็นผลลัพธ์ในเบราว์เซอร์

Hello!I am escaped String!

Hey!!I am Raw String!

อาร์เรย์

อาร์เรย์คือชุดของข้อมูลที่เป็นเนื้อเดียวกัน เช่นเดียวกับ Java Kotlin รองรับอาร์เรย์ของข้อมูลประเภทต่างๆ ในตัวอย่างต่อไปนี้เราจะใช้อาร์เรย์ที่แตกต่างกัน

fun main(args: Array<String>) {
   val numbers: IntArray = intArrayOf(1, 2, 3, 4, 5)
   println("Hey!! I am array Example"+numbers[2])
}

โค้ดด้านบนให้ผลลัพธ์ต่อไปนี้ การสร้างดัชนีของอาร์เรย์คล้ายกับภาษาโปรแกรมอื่น ๆ ที่นี่เรากำลังค้นหาดัชนีที่สองซึ่งมีค่าคือ“ 3”

Hey!! I am array Example3

คอลเลกชัน

การรวบรวมเป็นส่วนที่สำคัญมากของโครงสร้างข้อมูลซึ่งทำให้การพัฒนาซอฟต์แวร์เป็นเรื่องง่ายสำหรับวิศวกร Kotlin มีคอลเลกชันสองประเภท - หนึ่งคือimmutable collection (ซึ่งหมายถึงรายการแผนที่และชุดที่ไม่สามารถแก้ไขได้) และอีกประการหนึ่งคือ mutable collection(คอลเลกชันประเภทนี้สามารถแก้ไขได้) เป็นสิ่งสำคัญมากที่จะต้องคำนึงถึงประเภทของคอลเลกชันที่ใช้ในแอปพลิเคชันของคุณเนื่องจากระบบ Kotlin ไม่ได้แสดงถึงความแตกต่างที่เฉพาะเจาะจงใด ๆ

fun main(args: Array<String>) { 
   val numbers: MutableList<Int> = mutableListOf(1, 2, 3) //mutable List 
   val readOnlyView: List<Int> = numbers                  // immutable list 
   println("my mutable list--"+numbers)        // prints "[1, 2, 3]" 
   numbers.add(4) 
   println("my mutable list after addition --"+numbers)        // prints "[1, 2, 3, 4]" 
   println(readOnlyView)     
   readOnlyView.clear()    // ⇒ does not compile  
// gives error  
}

โค้ดด้านบนจะให้ผลลัพธ์ต่อไปนี้ในเบราว์เซอร์ ทำให้เกิดข้อผิดพลาดเมื่อเราพยายามล้างรายการคอลเลกชันที่ไม่แน่นอน

main.kt:9:18: error: unresolved reference: clear
   readOnlyView.clear()    // -> does not compile  
                 ^

ในคอลเลกชัน Kotlin มีวิธีการที่มีประโยชน์บางอย่างเช่น first(), last(), filter()ฯลฯ วิธีการทั้งหมดนี้สามารถอธิบายได้ด้วยตนเองและง่ายต่อการนำไปใช้ ยิ่งไปกว่านั้น Kotlin ยังทำตามโครงสร้างเดียวกันเช่น Java ในขณะที่ใช้คอลเลกชัน คุณมีอิสระที่จะใช้คอลเลคชันที่คุณเลือกเช่นแผนที่และชุด

ในตัวอย่างต่อไปนี้เราได้ใช้แผนที่และตั้งค่าโดยใช้วิธีการในตัวที่แตกต่างกัน

fun main(args: Array<String>) {
   val items = listOf(1, 2, 3, 4)
   println("First Element of our list----"+items.first())
   println("Last Element of our list----"+items.last())
   println("Even Numbers of our List----"+items.
      filter { it % 2 = = 0 })   // returns [2, 4]
   
   val readWriteMap = hashMapOf("foo" to 1, "bar" to 2)
   println(readWriteMap["foo"])  // prints "1"
   
   val strings = hashSetOf("a", "b", "c", "c")
   println("My Set Values are"+strings)
}

โค้ดด้านบนให้ผลลัพธ์ต่อไปนี้ในเบราว์เซอร์

First Element of our list----1
Last Element of our list----4
Even Numbers of our List----[2, 4]
1
My Set Values are[a, b, c]

ช่วง

Ranges เป็นอีกหนึ่งเอกลักษณ์ของ Kotlin เช่นเดียวกับ Haskell มีตัวดำเนินการที่ช่วยให้คุณทำซ้ำในช่วงต่างๆ ภายในจะดำเนินการโดยใช้rangeTo() และแบบฟอร์มตัวดำเนินการคือ (..).

ในตัวอย่างต่อไปนี้เราจะดูว่า Kotlin ตีความตัวดำเนินการช่วงนี้อย่างไร

fun main(args: Array<String>) {
   val i:Int  = 2
   for (j in 1..4) 
   print(j) // prints "1234"
   
   if (i in 1..10) { // equivalent of 1 < = i && i < = 10
      println("we found your number --"+i)
   }
}

โค้ดด้านบนให้ผลลัพธ์ต่อไปนี้ในเบราว์เซอร์

1234we found your number --2