You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
val a =5val b =10if (a in2..b) {
println("in the range")
}
if (a !in2..b) {
println("out of the range")
}
println("------")
for (i in2..10) {
println(i)
}
println("------")
for (i in2.rangeTo(10)) {
println(i)
}
println("------")
//步进for (i in2..10 step 2) {
println(i)
}
println("------")
//10-2 步进4for (i in10 downTo 2 step 4) {
println(i)
}
第一个跟第二循环表示的意思相同,第三个通过step来进行步进,第四个则是反过来步进,很直观
java8中stream操作一个数组很方便,那么在kotlin中是什么样的呢,我们看如下例子
funmain(args:Array<String>) {
var array = listOf<String>("hello", "world", "hello world", "welcome", "bye")
for (item in array) {
println(item)
}
println("------")
when {
"world"in array ->println("world in collection")
}
//找出长度超过5 字符串大写,默认字符排序,打印控制台 awsome
array
.filter { it.length >5 }
.map { it.toUpperCase() }
.sorted().forEach { println(it) }
}
结合上篇文章,kotlin里面的range使用..来表示,java中的range一般是前闭后开,kotlin中的则不一样,2..8是表示2到8,也包含8,首先我们看个例子
第一个跟第二循环表示的意思相同,第三个通过step来进行步进,第四个则是反过来步进,很直观
java8中stream操作一个数组很方便,那么在kotlin中是什么样的呢,我们看如下例子
最后一个例子是写class的,跟java中做对比
如果往class前面添加public也是可以的,但是编辑器提醒public是多余的,说明默认class就是public的,加不加都可以,其次java中要求public class 类名跟文件名保持一致,在kotlin中没有这样的规定,如果类中什么也没有,可以不带花括号
在看下面
1.在kotlin中,一个类可以有个primary构造方法以及一个或者多个secondary构造方法
2.primary构造方法是类头(class head) 的一部分,它位于类名后面,可以拥有若干参数
3.如果primary构造方法没有任何注解或者可见性关节字修饰,那么constructor关键字可以省略
4.初始化MyClass,省略了new关键字
上面的例子可以看到init代码块其实就是类似之前java构造方法的逻辑,这里构造方法,跟初始化构造方法逻辑做了拆分,构造方法要么用于初始化成员变量,要么用于init代码块逻辑,如上面例子,上面例子运行结果
zhangsan
The text was updated successfully, but these errors were encountered: