Kotlin (2): for-loop
其實Kotlin 有一個官方網站,這裡有很多資源,對開發者來說很重要: https://kotlinlang.org/docs/home.html
-------------------
要講FOR-LOOP之前, 我們可以順便了解Array 跟 collections.
因為這兩個都需要用到for-loop.
for (item in collection)
print(item)
or
for (item: Int in ints) { // ... }
or
// method 2-----
example:
val items = listOf("apple", "banana", "kiwifruit")
//val items = listOf<String>() //this will be a empty list.
for (item in items) {
println(item)
}
或是
val items = listOf("apple", "banana", "kiwifruit")
for (index in items.indices) {
println("item at $index is ${items[index]}")
}
上面是基本款的FOR-LOOP使用方法. ,注意上面Listof方法是collections.
----
range expression:
To iterate over a range of numbers, use a range expression:
for (i in 1..3) {
println(i)
}
println("---")
for (i in 6 downTo 0 step 2) {
println(i)
}
output:
1 2 3 --- 6 4 2 0
---
然後有個問題: 1..3可以,那3..1可以嗎?
for (i in 3..1) {
println(i)
}
答案是: 不可以的.
什麼都沒有.
要改用 10 downTo 1
----
神奇的indices: iterate through an array index.var language = arrayOf("Ruby", "Kotlin", "Python", "Java")
for (idx in language.indices) {
// printing array elements having even index only
if (idx%2 == 0)
println(language[idx])
}
---
神奇的withIndex:for ((index, value) in array.withIndex()) {
println("the element at $index is $value")
}
---
Kotlin建立array陣列的方法跟Java不同:
可以使用arrayOf()
,intArrayOf()
,charArrayOf()
,booleanArrayOf()
,longArrayOf()
,shortArrayOf()
,byteArrayOf()
函數創建Kotlin array。
但只要記住建立array時他會出現arrayOf之字樣.
var myArray1 =
arrayOf
(1,10,4,6,15) var myArray2 = arrayOf<Int>(1,10,4,6,15) val myArray3 = arrayOf<String>("Ajax","Prake","Michel","John","Curry") var myArray4= arrayOf(1,10,4, "Ajax","Prake")
var myArray5: IntArray = intArrayOf(5,10,20,12,15)
然後,要注意的是 除了Array 外,還有一種東西叫collections.
Collection types, such as Iterable, Collection, List, Set, Map.
然後它的initial 方式跟array的initial方式很像.
建立list 則是listOf之字樣. mapOf, setOf 等集合的都是同樣的初始方法. 但要記得沒有Mutable字樣的都是唯獨屬性.在初始化後都不能add,delete 元素.
An arrayListOf() is a function of ArrayList class. ArrayList is mutable which means it provides both read am write functionalities. The arrayListOf() function returns an ArrayList type.
var arrayList =
arrayListOf
<Int>(4,7,12) for(element in arrayList){ println(element) }
- var intArrayList: ArrayList<Int> = arrayListOf<Int>(1,2,3)
- var stringArrayList: ArrayList<String> = arrayListOf<String>("Ajay","Vi","Prakash")
- var anyArrayList: ArrayList<Any> = arrayListOf<Any>(1,2,3,"Ajay","Vi","Prakash")
有一個Any type.
還可以直接用println( list.get(2)) 的方式取得元素值.
有get就有set: list.set(2,"Rohan")
iterator() function:
-------------
然後來看看這個重要的println:這個${---.---}應該會非常常用到應該會非常常用到
- class Employee(var id: Int, var name: String, var phone: Int, var city: String)
- fun main(args: Array<String>){
- val arrayList: ArrayList<Employee> = arrayListOf<Employee>()
- val e1 = Employee(101, "Ajay", 55555, "Delhi")
- val e2 = Employee(102, "Rahul", 44443, "Mumbai")
- val e3 = Employee(103, "Sanjay", 45422, "Noida")
- arrayList.add(e1)
- arrayList.add(e2)
- arrayList.add(e3)
- for (e in arrayList) {
- println("${e.id} ${e.name} ${e.phone} ${e.city}")
- }
- }
Output:
101 Ajay 55555 Delhi
留言
張貼留言