1.rangeTo的约定
..语法,例如:1..10代表所有1到10的数字。..运算符是调用rangeTo函数的一个简洁方法。
- 示例代码
fun main(args: Array<String>) {
val a = 5
val b = 10
if (a in 2..b) {
println("in the range")
}
if (a !in 2..b) {
println("out of the range")
}
println("-----------")
for (i in 2..10) {
println(i)
}
println("------")
for (i in 2.rangeTo(10)) {
println(i)
}
println("---------")
for (i in 2..10 step 2) {
println(i)
}
println("-------")
for (i in 10 downTo 2 step 4) {
println(i)
}
}
- 输出结果
in the range
-----------
2
3
4
5
6
7
8
9
10
------
2
3
4
5
6
7
8
9
10
---------
2
4
6
8
10
-------
10
6
2
示例代码
fun main(args: Array<String>) {
var i = 4
if (i in 1..5) {
println(i)
}
println("---------")
for (a in 1..4) {
println(a)
}
println("---------")
for (a in 4..1) {
println(a)
}
println("-----------")
for (a in 4 downTo 1) {
println(a)
}
println("----------")
for (a in 1..6 step 2) {
println(a)
}
println("---------")
for (a in 6 downTo 1 step 2) {
println(a)
}
println("---------")
for (a in 1 until 6) {
println(a)
}
}
输出
4
---------
1
2
3
4
---------
-----------
4
3
2
1
----------
1
3
5
---------
6
4
2
---------
1
2
3
4
5
2.字符串数组遍历
- 示例代码
fun main(args: Array<String>) {
var array = listOf<String>("hello", "world", "hello world", "welcome", "goodbye")
for (item in array) {
println(item)
}
println("--------")
when {
"world" in array -> println("world in collection")
}
println("----------")
array.filter { it.length > 5 }.map { it.toUpperCase() }.sorted().forEach { println(it) }
}
- 输出结果
hello
world
hello world
welcome
goodbye
--------
world in collection
----------
GOODBYE
HELLO WORLD
WELCOME
3.多行三重引号的字符串
三重引号字符串的目的,不仅在于避免转义字符字符,而且使它可以包含任何字符,包括换行符。
- 示例代码
fun main(args: Array<String>) {
var array = listOf<String>("hello", "world", "hello world", "welcome", "goodbye")
for (item in array) {
println(item)
}
println("--------")
when {
"world" in array -> println("world in collection")
}
println("----------")
array.filter { it.length > 5 }.map { it.toUpperCase() }.sorted().forEach { println(it) }
}
- 输出结果
hello \n world
hello
\n world
welcome
4.面向对象的Kotlin
1)在Kotlin中,一个类的可以有一个primary构造方法以及一个或者多个secondary构造方法。
2)primary构造方法是类头(Class header)的一部分,它位于类名后面,可以拥有若干参数。
3)如果primary构造方法没有任何注解或者可见性关键字修饰,那么constructor关键字可省略。
- 示例代码
package com.leofight.kotlin
class EmptyClass
class MyClass constructor(username: String) {
init {
println(username)
}
private val username: String = username.toUpperCase()
}
fun main(args: Array<String>) {
var myClass = MyClass("zhangsan")
}
- 运行结果
zhangsan
网友评论