when表达式

when表达式的用法类似与java中的switch表达式

fun main(args: Array<String>) {
    log(1);
    log(2);
    log(3);
    log(4);
    log(5);
    log(6);
}

fun log(logLevel: Int){
    when(logLevel){
        1 -> println(logLevel);
        2 -> println(logLevel);
        3 -> println(logLevel);
        4 -> println(logLevel);
        5 -> println(logLevel);
        else -> println("else");
    }
}

输出结果:

1
2
3
4
5
else

Range

可以在Kotlin中定义一个区间,以下是先定义一个1到100的闭区间,然后通过循环计算出1到100之和的代码:

var nums = 1..100;
var sum = 0;
for(num in nums){
    sum+=num;
}
println(sum);

注:这里插一个题外话,上述的for(num in nums)与java中的foreach循环相类似。

开闭区间的表示方法:

  • [1,100]:1 .. 100
  • [1,100):1 until 100

将集合倒叙api :nums.reversed();
获取集合总数:nums.count();

循环的写法(loop)

  • for(num in nums)
    上述提到的for(num in nums)与java中的foreach循环类似,nums可看作一个集合,num为遍历过程中的某一个子项。
  • for(num in nums step 2)
    在第一点的基础上加上step i,i为所要设置的步长,即遍历是从第0个开始隔i个获取一次值:
    fun main(args: Array<String>) {
            var nums = 1..10;
            for(num in nums step 2){
                println(num);
            }
    }
    

输出结果:

    1
    3
    5
    7
    9

List和Map的创建

List和Map与java中的不同在于它们的创建写法,其余的api与java类似。有需要可查阅此处:常用集合的使用

  • List的创建

    var nums = listOf< String >(
    "111",
    "222",
    "333",
    "444");

  • Map的创建与添加

    var map = HashMap< String,String >();
    map["one"]="a";
    map["two"]="b";

    注:对于map的取值只需要map[对应的key值],如:map["one"]

标签: Kotlin

添加新评论