Codelab นี้เป็นส่วนหนึ่งของหลักสูตร Kotlin Bootcamp สําหรับโปรแกรมเมอร์ คุณจะได้รับประโยชน์สูงสุดจากหลักสูตรนี้ หากทํางานผ่าน Codelab ตามลําดับ คุณอาจอ่านผ่านบางหัวข้อได้ ทั้งนี้ขึ้นอยู่กับความรู้ของคุณ หลักสูตรนี้มุ่งเน้นที่โปรแกรมเมอร์ที่มีความรู้เกี่ยวกับภาษาเชิงวัตถุและต้องการเรียนรู้ Kotlin
ข้อมูลเบื้องต้น
ใน Codelab นี้ คุณจะได้เรียนรู้ข้อมูลพื้นฐานเกี่ยวกับภาษาโปรแกรม Kotlin ได้แก่ ประเภทข้อมูล โอเปอเรเตอร์ ตัวแปร โครงสร้างการควบคุม และตัวแปรที่เป็นค่าว่างเทียบกับค่า Null ไม่ได้ หลักสูตรนี้มุ่งเน้นที่โปรแกรมเมอร์ที่มีความรู้เกี่ยวกับภาษาเชิงวัตถุและต้องการเรียนรู้เกี่ยวกับ Kotlin
แทนที่หลักสูตรนี้จะสร้างแอปตัวอย่างเดียว บทเรียนในหลักสูตรนี้ออกแบบมาเพื่อสร้างเสริมความรู้ แต่นักเรียนไม่ต้องพึ่งพากันและกันเพื่อให้คุณเข้าใจส่วนต่างๆ ที่คุณคุ้นเคย ตัวอย่างจํานวนมากใช้ธีมสัตว์น้ําร่วมกัน และอยากดูเรื่องราวเกี่ยวกับสัตว์น้ําทั้งหมด โปรดดูหลักสูตร Kotlin Bootcamp for Programmers Udacity
สิ่งที่ควรทราบอยู่แล้ว
- วิธีสร้างโปรเจ็กต์ใน IntelliJ IDEA
- วิธีเปิดและเรียกใช้โค้ดใน Kotlin's REPL (Read-Eval-Print Loop) ใน IntelliJ IDEA (เครื่องมือ > Kotlin > Kotlin REPL)
สิ่งที่คุณจะได้เรียนรู้
- วิธีใช้ประเภทข้อมูล โอเปอเรเตอร์ และตัวแปรของ Kotlin
- วิธีทํางานกับบูลีนและเงื่อนไข
- ความแตกต่างระหว่างตัวแปรที่เป็นค่าว่างและค่าต่างๆ ไม่ได้
- วิธีการทํางานของอาร์เรย์ รายการ และวนซ้ําใน Kotlin
สิ่งที่คุณจะทํา
- ทํางานร่วมกับ Kotlin REPL เพื่อเรียนรู้ข้อมูลเบื้องต้นของ Kotlin
ในงานนี้ คุณจะได้เรียนรู้เกี่ยวกับโอเปอเรเตอร์และประเภทโดยใช้ภาษาโปรแกรม Kotlin
ขั้นตอนที่ 1: สํารวจโอเปอเรเตอร์ที่เป็นตัวเลข
- เปิด IntelliJ IDEA หากยังไม่ได้เปิด
- หากต้องการเปิด Kotlin REPL ให้เลือก Tools > Kotlin > Kotlin REPL
เช่นเดียวกับภาษาอื่นๆ Kotlin ใช้ +
, -
, *
และ /
สําหรับบวก ลบ เวลา และแผนก Kotlin ยังรองรับหมายเลขประเภทต่างๆ เช่น Int
, Long
, Double
และ Float
- ป้อนนิพจน์ต่อไปนี้ในการตอบกลับ หากต้องการดูผลการค้นหา ให้กด
Control+Enter
(Command+Enter
ใน Mac) หลังจากแต่ละรายการ
1+1 ⇒ res8: kotlin.Int = 2 53-3 ⇒ res9: kotlin.Int = 50 50/10 ⇒ res10: kotlin.Int = 5 1.0/2.0 ⇒ res11: kotlin.Double = 0.5 2.0*3.5 ⇒ res12: kotlin.Double = 7.0
โปรดทราบว่าผลลัพธ์ของการดําเนินการจะเก็บค่าตัวถูกดําเนินการไว้ ดังนั้น 1/2 = 0 แต่ 1.0/2.0 = 0.5
- โปรดลองใช้นิพจน์ที่มีเครื่องหมายจํานวนเต็มและทศนิยมผสมกัน
6*50 ⇒ res13: kotlin.Int = 300 6.0*50.0 ⇒ res14: kotlin.Double = 300.0 6.0*50 ⇒ res15: kotlin.Double = 300.0
- เรียกเมธอดด้วยตัวเลข Kotlin เก็บตัวเลขเป็นค่าดั้งเดิม แต่ให้คุณเรียกใช้เมธอดบนตัวเลขได้ราวกับเป็นออบเจ็กต์
2.times(3) ⇒ res5: kotlin.Int = 6 3.5.plus(4) ⇒ res8: kotlin.Double = 7.5 2.4.div(2) ⇒ res9: kotlin.Double = 1.2
ขั้นตอนที่ 2: ฝึกทํางานโดยใช้ประเภท
Kotlin ไม่ได้แปลงโดยนัยระหว่างประเภทตัวเลข คุณจึงไม่สามารถกําหนดค่าสั้นๆ ให้กับตัวแปรแบบยาวโดยตรง หรือ Byte
ไปยัง Int
ซึ่งเป็นเพราะการแปลงตัวเลขโดยนัยเป็นข้อผิดพลาดที่พบได้ทั่วไปในโปรแกรม คุณกําหนดมูลค่าประเภทต่างๆ ได้ทุกเมื่อโดยการแคสต์
- หากต้องการดูแคสต์บางรายการที่เป็นไปได้ ให้กําหนดตัวแปรประเภท
Int
ใน REPL
val i: Int = 6
- สร้างตัวแปรใหม่ จากนั้นป้อนชื่อตัวแปรที่แสดงด้านบน ตามด้วย
.to
val b1 = i.to
IntelliJ IDEA จะแสดงรายการการดําเนินการที่เป็นไปได้ทั้งหมด การเติมข้อความอัตโนมัตินี้ใช้งานได้กับตัวแปรและออบเจ็กต์ทุกประเภท
- เลือก
toByte()
จากรายการ จากนั้นพิมพ์ตัวแปร
val b1 = i.toByte()
println(b1)
⇒ 6
- กําหนดค่า
Byte
ให้กับตัวแปรประเภทต่างๆ
val b2: Byte = 1 // OK, literals are checked statically
println(b2)
⇒ 1
val i1: Int = b2
⇒ error: type mismatch: inferred type is Byte but Int was expected
val i2: String = b2
⇒ error: type mismatch: inferred type is Byte but String was expected
val i3: Double = b2
⇒ error: type mismatch: inferred type is Byte but Double was expected
- สําหรับงานที่แสดงข้อผิดพลาด ให้ลองแคสต์แทน
val i4: Int = b2.toInt() // OK!
println(i4)
⇒ 1
val i5: String = b2.toString()
println(i5)
⇒ 1
val i6: Double = b2.toDouble()
println(i6)
⇒ 1.0
- Kotlin ช่วยให้คุณวางขีดล่างในตัวเลขได้หากต้องการ ลองป้อนค่าคงที่ที่เป็นตัวเลขอื่นๆ
val oneMillion = 1_000_000 val socialSecurityNumber = 999_99_9999L val hexBytes = 0xFF_EC_DE_5E val bytes = 0b11010010_01101001_10010100_10010010
ขั้นตอนที่ 3: ดูค่าของประเภทตัวแปร
Kotlin รองรับตัวแปร 2 ประเภท ได้แก่ เปลี่ยนแปลงได้และเปลี่ยนแปลงไม่ได้ ด้วย val
คุณสามารถกําหนดมูลค่าได้หนึ่งครั้ง คุณอาจได้รับข้อผิดพลาดหากพยายามมอบหมายอีกครั้ง เมื่อใช้ var
คุณสามารถกําหนดมูลค่าแล้วเปลี่ยนแปลงค่าในภายหลังในโปรแกรมได้
- กําหนดตัวแปรโดยใช้
val
และvar
แล้วกําหนดค่าใหม่ให้กับตัวแปร
var fish = 1
fish = 2
val aquarium = 1
aquarium = 2
⇒ error: val cannot be reassigned
คุณสามารถกําหนดค่า fish
แล้วกําหนดมูลค่าใหม่ เนื่องจากมีการกําหนดค่าไว้ที่ var
การพยายามกําหนดค่าใหม่ให้กับ aquarium
จะทําให้มีข้อผิดพลาดเกิดขึ้นเนื่องจากมีการกําหนดไว้กับ val
ประเภทที่คุณจัดเก็บในตัวแปรจะได้รับการอนุมานเมื่อคอมไพเลอร์สามารถระบุออกจากบริบทได้ คุณระบุประเภทของตัวแปรอย่างชัดแจ้งได้เสมอโดยใช้เครื่องหมายโคลอน
- กําหนดตัวแปรบางอย่างและระบุประเภทอย่างชัดแจ้ง
var fish: Int = 12
var lakes: Double = 2.5
เมื่อคุณกําหนดหรือเป็นผู้คอมไพล์แล้ว คุณจะเปลี่ยนประเภทไม่ได้หรือได้รับข้อผิดพลาด
ขั้นตอนที่ 4: ดูข้อมูลเกี่ยวกับสตริง
สตริงใน Kotlin ค่อนข้างคล้ายกับสตริงในภาษาโปรแกรมอื่นๆ ที่ใช้ "
สําหรับสตริงและ '
สําหรับอักขระตัวเดียว และคุณสามารถต่อสตริงกับโอเปอเรเตอร์ +
ได้ คุณสร้างเทมเพลตสตริงโดยผสมกับค่าต่างๆ ได้ โดยชื่อ $
variable
จะถูกแทนที่ด้วยข้อความที่แสดงค่า เราเรียกสิ่งนี้ว่าการประมาณค่าตัวแปร
- สร้างเทมเพลตสตริง
val numberOfFish = 5
val numberOfPlants = 12
"I have $numberOfFish fish" + " and $numberOfPlants plants"
⇒ res20: kotlin.String = I have 5 fish and 12 plants
- สร้างเทมเพลตสตริงที่มีนิพจน์อยู่ในนั้น และค่าดังกล่าวอาจเป็นผลลัพธ์ของนิพจน์อื่นๆ ใช้วงเล็บปีกกา
{}
เพื่อกําหนดนิพจน์
"I have ${numberOfFish + numberOfPlants} fish and plants"
⇒ res21: kotlin.String = I have 17 fish and plants
ในงานนี้ คุณจะได้เรียนรู้เกี่ยวกับบูลีนและตรวจสอบเงื่อนไขในภาษาเขียนโปรแกรมของ Kotlin เช่นเดียวกับภาษาอื่นๆ Kotlin มีบูลีนและโอเปอเรเตอร์บูลีน เช่น น้อยกว่า เท่ากับ มากกว่า เป็นต้น (<
, ==
, >
, !=
, <=
, >=
)
- เขียนคําสั่ง
if
/else
val numberOfFish = 50
val numberOfPlants = 23
if (numberOfFish > numberOfPlants) {
println("Good ratio!")
} else {
println("Unhealthy ratio")
}
⇒ Good ratio!
- ลองใช้ช่วงในคําสั่ง
if
ใน Kotlin เงื่อนไขที่คุณทดสอบจะใช้ช่วงได้เช่นกัน
val fish = 50
if (fish in 1..100) {
println(fish)
}
⇒ 50
- เขียน
if
ที่มีหลายกรณี สําหรับเงื่อนไขที่ซับซ้อนมากขึ้น ให้ใช้เชิงตรรกะและ&&
และตรรกะหรือ||
เช่นเดียวกับภาษาอื่นๆ คุณอาจมีเคสหลายเคสได้โดยใช้else if
if (numberOfFish == 0) {
println("Empty tank")
} else if (numberOfFish < 40) {
println("Got fish!")
} else {
println("That's a lot of fish!")
}
⇒ That's a lot of fish!
- ลองใช้คําสั่ง
when
มีวิธีที่ดีกว่าในการเขียนชุดคําสั่งif
/else if
/else
ด้วย Kotlin โดยใช้คําสั่งwhen
ซึ่งเหมือนกับคําสั่งswitch
ในภาษาอื่นๆ เงื่อนไขในคําสั่งwhen
จะใช้ช่วงได้เช่นกัน
when (numberOfFish) {
0 -> println("Empty tank")
in 1..39 -> println("Got fish!")
else -> println("That's a lot of fish!")
}
⇒ That's a lot of fish!
ในงานนี้ คุณจะได้เรียนรู้เกี่ยวกับตัวแปรที่เป็นค่า Null เทียบกับค่า Null ไม่ได้ ข้อผิดพลาดในการเขียนโปรแกรมที่เกี่ยวข้องกับ Null เป็นแหล่งที่มาของข้อบกพร่องจํานวนนับไม่ถ้วน Kotlin พยายามลดข้อบกพร่องโดยการแนะนําตัวแปรที่เป็นค่าว่างไม่ได้
ขั้นตอนที่ 1: ดูข้อมูลเกี่ยวกับ Nullability
โดยค่าเริ่มต้น ตัวแปรต้องไม่เป็น null
- ประกาศ
Int
และกําหนดnull
var rocks: Int = null
⇒ error: null can not be a value of a non-null type Int
- ใช้โอเปอเรเตอร์เครื่องหมายคําถาม
?
หลังประเภทเพื่อระบุว่าตัวแปรอาจเป็น Null ได้ ประกาศInt?
และกําหนดnull
var marbles: Int? = null
เมื่อคุณมีประเภทข้อมูลที่ซับซ้อน เช่น รายการ
- คุณอนุญาตให้องค์ประกอบในรายการเป็น Null ได้
- คุณจะอนุญาตให้รายการมีค่าเป็น Null ได้ แต่ในกรณีที่เป็นค่า Null จะเป็น Null ไม่ได้
- คุณอนุญาตให้ทั้งรายการหรือองค์ประกอบเป็น Null ได้
รายการงานและประเภทข้อมูลที่ซับซ้อนอื่นๆ จะครอบคลุมในงานถัดไป
ขั้นที่ 2: ดูข้อมูลเกี่ยวกับ ? และ ?: โอเปอเรเตอร์
คุณสามารถทดสอบ null
ด้วยโอเปอเรเตอร์ ?
ซึ่งช่วยให้คุณไม่ต้องเสียเวลาเขียนคําสั่ง if
/else
จํานวนมาก
- เขียนโค้ดยาวขึ้นเพื่อตรวจสอบว่าตัวแปร
fishFoodTreats
ไม่ใช่null
หรือไม่ แล้วทําให้ตัวแปรนั้นลดลง
var fishFoodTreats = 6
if (fishFoodTreats != null) {
fishFoodTreats = fishFoodTreats.dec()
}
- ลองดูที่วิธีการเขียนของ Kotlin โดยใช้โอเปอเรเตอร์
?
var fishFoodTreats = 6
fishFoodTreats = fishFoodTreats?.dec()
- คุณยังเชื่อมโยงการทดสอบ Null กับโอเปอเรเตอร์
?:
ได้ด้วย ดังตัวอย่างต่อไปนี้
fishFoodTreats = fishFoodTreats?.dec() ?: 0
เป็นคําย่อสําหรับ "หาก fishFoodTreats
ไม่ใช่ null
ให้เลิกใช้และใช้ค่า มิเช่นนั้นจะใช้ค่าหลัง ?:
ซึ่งเท่ากับ 0." หาก fishFoodTreats
คือ null
ระบบจะหยุดการประเมินและจะไม่เรียกใช้เมธอด dec()
ประเด็นเกี่ยวกับตัวชี้ Null
ถ้าคุณชอบ NullPointerExceptions
มาก Kotlin ช่วยให้คุณเก็บพวกเขาไว้ได้ โอเปอเรเตอร์การยืนยันที่ไม่เป็นค่าว่าง !!
(double-bang) จะแปลงค่าใดๆ เป็นประเภทที่ไม่ใช่ Null และส่งข้อยกเว้นหากค่าเป็น null
val len = s!!.length // throws NullPointerException if s is null
ในงานนี้ คุณจะได้เรียนรู้เกี่ยวกับอาร์เรย์และรายการ และได้เรียนรู้วิธีต่างๆ ในการสร้างการวนซ้ําในภาษาโปรแกรม Kotlin
ขั้นตอนที่ 1: สร้างรายการ
รายการเป็นประเภทพื้นฐานใน Kotlin และคล้ายกับรายการในภาษาอื่นๆ
- ประกาศรายการโดยใช้
listOf
และพิมพ์ออกมา รายการนี้เปลี่ยนแปลงไม่ได้
val school = listOf("mackerel", "trout", "halibut")
println(school)
⇒ [mackerel, trout, halibut]
- ประกาศรายการที่เปลี่ยนแปลงได้โดยใช้
mutableListOf
นํารายการออก
val myList = mutableListOf("tuna", "salmon", "shark")
myList.remove("shark")
⇒ res36: kotlin.Boolean = true
เมธอด remove()
แสดงผล true
เมื่อนํารายการออกเรียบร้อยแล้ว
ขั้นตอนที่ 2: สร้างอาร์เรย์
Kotlin มีอาร์เรย์เช่นเดียวกับภาษาอื่นๆ ไม่มี Array
เวอร์ชันที่เปลี่ยนแปลงไม่ได้ ซึ่งต่างจากรายการใน Kotlin ที่มีเวอร์ชันที่เปลี่ยนแปลงไม่ได้ เมื่อสร้างอาร์เรย์แล้ว ขนาดจะคงที่ คุณเพิ่มหรือนําองค์ประกอบออกไม่ได้ ยกเว้นการคัดลอกไปยังอาร์เรย์ใหม่
กฎเกี่ยวกับการใช้ val
และ var
จะเหมือนกันกับอาร์เรย์ที่มีรายการ
- ประกาศอาร์เรย์ของสตริงโดยใช้
arrayOf
ใช้เครื่องมืออาร์เรย์java.util.Arrays.toString()
เพื่อพิมพ์
val school = arrayOf("shark", "salmon", "minnow")
println(java.util.Arrays.toString(school))
⇒ [shark, salmon, minnow]
- อาร์เรย์ที่ประกาศด้วย
arrayOf
ไม่มีประเภทที่เชื่อมโยงกับองค์ประกอบ คุณจึงผสมผสานประเภทที่เป็นประโยชน์ได้ ประกาศอาร์เรย์ที่มีประเภทต่างๆ
val mix = arrayOf("fish", 2)
- และยังประกาศอาร์เรย์ที่มี 1 ประเภทสําหรับองค์ประกอบทั้งหมดได้ด้วย ประกาศอาร์เรย์ของจํานวนเต็มโดยใช้
intArrayOf()
มีเครื่องมือสร้างที่เกี่ยวข้องหรือฟังก์ชันการเริ่มต้นสําหรับอาร์เรย์ประเภทอื่นๆ
val numbers = intArrayOf(1,2,3)
- รวมอาร์เรย์ 2 รายการกับโอเปอเรเตอร์
+
val numbers = intArrayOf(1,2,3)
val numbers3 = intArrayOf(4,5,6)
val foo2 = numbers3 + numbers
println(foo2[5])
=> 3
- ลองใช้ชุดค่าผสมของอาร์เรย์และรายการที่ซ้อนกันหลายรายการ เช่นเดียวกับภาษาอื่นๆ คุณสามารถฝังอาร์เรย์และรายการได้ กล่าวคือ เมื่อคุณใส่อาร์เรย์ภายในอาร์เรย์ คุณจะมีอาร์เรย์ 1 ชุด ไม่ใช่อาร์เรย์ที่แยกเป็นเนื้อหาของทั้ง 2 อาร์เรย์ องค์ประกอบของอาร์เรย์อาจเป็นรายการ และองค์ประกอบของรายการอาจเป็นอาร์เรย์
val numbers = intArrayOf(1, 2, 3)
val oceans = listOf("Atlantic", "Pacific")
val oddList = listOf(numbers, oceans, "salmon")
println(oddList)
⇒ [[I@89178b4, [Atlantic, Pacific], salmon]
องค์ประกอบแรก numbers
คือ Array
เมื่อคุณไม่ใช้ยูทิลิตีอาร์เรย์เพื่อพิมพ์ Kotlin จะพิมพ์ที่อยู่แทนเนื้อหาของอาร์เรย์
- ฟีเจอร์ที่ดีอย่างหนึ่งของ Kotlin คือคุณสามารถเริ่มอาร์เรย์ด้วยโค้ดแทนที่จะเริ่มต้นเป็น 0 ดังตัวอย่างต่อไปนี้
val array = Array (5) { it * 2 }
println(java.util.Arrays.toString(array))
⇒ [0, 2, 4, 6, 8]
โค้ดการเริ่มต้นอยู่ระหว่างวงเล็บปีกกา {}
ในโค้ด it
หมายถึงดัชนีอาร์เรย์ที่ขึ้นต้นด้วย 0
ขั้นตอนที่ 3: วนซ้ํา
เมื่อคุณมีรายการและอาร์เรย์แล้ว การวนซ้ําองค์ประกอบต่างๆ ก็จะทํางานตามที่คุณคาดไว้
- สร้างอาร์เรย์ ใช้วนซ้ํา
for
ซ้ําผ่านอาร์เรย์และพิมพ์องค์ประกอบ
val school = arrayOf("shark", "salmon", "minnow")
for (element in school) {
print(element + " ")
}
⇒ shark salmon minnow
- ใน Kotlin คุณวนซ้ําองค์ประกอบและดัชนีพร้อมกันได้ ดังตัวอย่างต่อไปนี้
for ((index, element) in school.withIndex()) {
println("Item at $index is $element\n")
}
⇒ Item at 0 is shark Item at 1 is salmon Item at 2 is minnow
- ลองใช้ขนาดและช่วงขนาดต่างๆ คุณสามารถระบุช่วงตัวเลขหรืออักขระตามตัวอักษร และในภาษาอื่น คุณไม่ต้องก้าวไปข้างหน้าทีละ 1 ครั้ง คุณย้อนกลับไปได้โดยใช้
downTo
for (i in 1..5) print(i)
⇒ 12345
for (i in 5 downTo 1) print(i)
⇒ 54321
for (i in 3..6 step 2) print(i)
⇒ 35
for (i in 'd'..'g') print (i)
⇒ defg
- ทดลองวนซ้ํา Kotlin มีภาษา
while
วนซ้ําdo...while
รอบ และมีโอเปอเรเตอร์++
และ--
เช่นเดียวกับภาษาอื่นๆ Kotlin ยังมีวนซ้ําrepeat
รายการ
var bubbles = 0
while (bubbles < 50) {
bubbles++
}
println("$bubbles bubbles in the water\n")
do {
bubbles--
} while (bubbles > 50)
println("$bubbles bubbles in the water\n")
repeat(2) {
println("A fish is swimming")
}
⇒ 50 bubbles in the water 49 bubbles in the water A fish is swimmingA fish is swimming
Kotlin คล้ายกับภาษาอื่นๆ อย่างมากเมื่อพูดถึงข้อมูลพื้นฐาน เช่น โอเปอเรเตอร์ รายการ และลูป แต่มีความแตกต่างที่สําคัญบางอย่าง
ฟีเจอร์ต่อไปนี้ใน Kotlin อาจแตกต่างจากที่คุณคุ้นเคยในภาษาอื่นๆ
- ประเภท Kotlin แปลงไม่ได้โดยนัย ให้ใช้การแคสต์
- กําหนดตัวแปรที่ประกาศด้วย
val
ได้เพียงครั้งเดียว - ตัวแปร Kotlin ต้องไม่เป็นค่าว่างโดยค่าเริ่มต้น ใช้
?
เพื่อทําให้ตัวแปรเป็น Null - เมื่อใช้ Kotlin คุณจะวนซ้ําดัชนีและองค์ประกอบของอาร์เรย์พร้อมกันได้วนซ้ํา
for
โครงสร้างโปรแกรม Kotlin ต่อไปนี้คล้ายกับโครงสร้างในภาษาอื่นๆ
- อาร์เรย์และรายการอาจมีประเภทเดียวหรือหลายประเภทผสมกัน
- อาร์เรย์และรายการสามารถซ้อนกันได้
- คุณสามารถสร้างการวนซ้ําได้โดยใช้
for
,while
,do
/while
และrepeat
- คําสั่ง
when
คือคําสั่งswitch
ในรูปแบบ Kotlin' แต่when
มีความยืดหยุ่นมากกว่า
เอกสารประกอบเกี่ยวกับ Kotlin
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อใดก็ตามในหลักสูตรนี้หรือคุณติดค้าง https://kotlinlang.org คือจุดเริ่มต้นที่ดีที่สุด
- การแปลงประเภทโจ่งแจ้ง
- การกําหนดตัวแปร
- เทมเพลตสตริง
- ค่าที่เป็นไปได้
- รายการ
- อาร์เรย์
if
when
for
while
- โอเปอเรเตอร์
?:
(Elvis) - โอเปอเรเตอร์
!!
บทแนะนําเกี่ยวกับ Kotlin
เว็บไซต์ https://try.kotlinlang.org มีบทแนะนําที่ครอบคลุมชื่อ Kotlin Koans ซึ่งเป็นล่ามบนเว็บ และชุดเอกสารอ้างอิงที่สมบูรณ์พร้อมตัวอย่าง
หลักสูตร Udacity
ดูหลักสูตร Udacity เกี่ยวกับหัวข้อนี้ที่หัวข้อ Kotlin Bootcamp สําหรับโปรแกรมเมอร์
IntelliJ IDEA
ดูเอกสารสําหรับ IntelliJ IDEA ได้ในเว็บไซต์ JetBrains
ส่วนนี้จะอธิบายการบ้านและรายงานสําหรับนักเรียนที่ทํางานผ่าน Codelab นี้ซึ่งเป็นส่วนหนึ่งของหลักสูตรที่นําโดยผู้สอน สิ่งที่ผู้สอนต้องทํามีดังนี้
- มอบหมายการบ้านหากจําเป็น
- สื่อสารกับนักเรียนเกี่ยวกับวิธีส่งงานทําการบ้าน
- ตัดเกรดการบ้าน
ผู้สอนจะใช้คําแนะนําเหล่านี้เท่าใดก็ได้หรือตามที่ต้องการก็ได้ และสามารถกําหนดให้การบ้านอื่นๆ ที่ตนคิดว่าเหมาะสมได้
หากคุณใช้ Codelab ด้วยตัวเอง ก็ให้ใช้การบ้านเพื่อทดสอบความรู้ของคุณได้
ตอบคําถามเหล่านี้
คำถามที่ 1
ข้อใดต่อไปนี้ประกาศรายการสตริงที่เปลี่ยนแปลงไม่ได้
▢ val school = arrayOf("shark", "salmon", "minnow")
▢ var school = arrayOf("shark", "salmon", "minnow")
▢ val school = listOf("shark", "salmon", "minnow")
▢ val school = mutableListOf("shark", "salmon", "minnow")
คำถามที่ 2
ผลลัพธ์ของโค้ดต่อไปนี้คืออะไรfor (i in 3..8 step 2) print(i)
▢ 345678
▢ 468
▢ 38
▢ 357
คำถามที่ 3
วัตถุประสงค์ของเครื่องหมายคําถามในโค้ดนี้คืออะไรvar rocks: Int? = 3
▢ ประเภทของตัวแปร rocks
ไม่คงที่
▢ ตัวแปร rocks
สามารถตั้งค่าเป็น Null
▢ จะตั้งค่าตัวแปร rocks
เป็น Null ไม่ได้
▢ ตัวแปร rocks
ไม่ควรเริ่มต้นทันที
ไปยังบทเรียนถัดไป ดังนี้
ดูภาพรวมของหลักสูตร รวมถึงลิงก์ไปยัง Codelab อื่นๆ ได้ที่ "Kotlin Bootcamp สําหรับโปรแกรมเมอร์: ยินดีต้อนรับสู่หลักสูตร"