Kotlin基础(四)when表达式、Range集合、简单循环、List/Map集合

524 阅读1分钟

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"]