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