每天一小时或者更多,慢慢解锁一下kotlin编程,day1先敲一下基础知识。
package day1
fun main(args:Array<String>){
println("Kotlin start...")
whenFunction(1);
whenFunction("kotlin");
whenFunction('X')
whenFunction("aaa")
val result = fact(10);
println(result)
forFunction()
val res = forFact(10)
println(res)
whileFunction()
returnFunction()
}
/**
* case when
* when的用法,参数可以是任意类型
*/
fun whenFunction(obj:Any?){
val invalide = arrayOf(11,12,13);
when(obj){
1,2,3,4,5,6,7,8,9,0 -> println("Object input is 数字!")
"kotlin" -> println("The input is $obj")
is Char -> println("This is a char")
in 1..10 -> println("obj is in 1...10")
in invalide -> println("obj is in invalide")
!in 10..20 -> println("Obj is outside 10..20")
else -> println("obj is $obj")
}
}
/**
* 用when 求阶乘
*/
fun fact(n:Int):Int{
var result = 1;
when(n){
0,1 -> result = 1;
else -> result = n * fact(n-1)
}
return result;
}
/**
* for循环的代码
*/
fun forFunction() {
val arr = arrayOf(1,2,3);
for (i in arr.indices) {
println("index is $i,value is "+arr.get(i));
println(arr[i])
}
for ((index, value) in arr.withIndex()){
println("index is $index,value is $value")
}
(1..10).forEach {
println(it)
}
}
/**
* params n
* @return Long
* 计算0到n到阶乘到和
*/
fun forFact(n:Int):Long {
var result:Long = 0;
(0..n).forEach {
result += fact(it);
}
return result;
}
fun whileFunction() {
var n = 0;
while (n<100) {
n++
if (n%6==0) {
println("I am happy")
} else if (n%9==0) {
println("I am continue")
continue
} else if (n>98) {
println("I am break")
break;
}
}
}
/**
* return的特殊用法
*/
fun returnFunction(){
fun sum(a:Int,b:Int) = a+b;//返回a+b的值
println(sum(1,2))
fun sum1(a:Int,b:Int) = {a+b}//带上大括号表示一个函数,将sum1函数返回
println(sum1(1,2))
println(sum1(1,2).invoke())//执行sum1函数
val arr = arrayOf(1,2,3,4)
arr.forEach (fun(a:Int){
if (a==3) return@forEach;//不会结束循环,而是继续下一步循环,类似continue
println(a)
} )
arr.forEach here@{
if (it==3) return@here;//不会结束循环,而是继续下一步循环,类似continue
println(it)
}
}