我是靠谱客的博主 忧郁外套,最近开发中收集的这篇文章主要介绍Kotlin与Java基本语法对比(四),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

    • IF表达式
    • 使用区间
    • When表达式

IF表达式

这个没什么好说的,java怎么用,kotlin怎么用,一模一样。但是kotlin的表达式更强大:
java

//三元表达式
String s = "".equals("")? "a":"b";

kotlin

//kotlin类似三元表达式的写法
val s:String = if("".equals("")) "a" else "b"

val max = if(a>b) 
{
    print("max is a")
    a 
}else{
    print("max is b")
    b
}

使用区间

java

public static void main(String[] args){
    int x=5,y=9;
    if(x >=1 && x <=8){
        System.out.println("x 在区间内");
    }

}

Kotlin

fun main((args:Array<String>){
    val x =5
    val y =9
    if(x in 1..8){
        println("x 在区间内")
    }

}

When表达式

when 将它的参数和所有的分支条件顺序比较,直到某个分支满足条件。

when 既可以被当做表达式使用也可以被当做语句使用。如果它被当做表达式,符合条件的分支的值就是整个表达式的值,如果当做语句使用, 则忽略个别分支的值。

when 类似其他语言的 switch 操作符

java

public static void main(String[] args){
    int x = 10;
    switch(x){
        case 1:
            System.out.println("1");
            break;
        case 2:
            System.out.println("2");
            break;
        default:
            System.out.println("default");
            break;
    }
    //合并多分枝
     switch(x){
        case 1:
        case 2:
            System.out.println("1 or 2");
            break;
        default:
            System.out.println("default");
            break;
    }
    
    //检测是不是一个特定类型
    if(x instanceOf Integer){
        System.out.println("x is int");
    }else if(x instanceOf Long){
        System.out.println("x is long");
    }else if(x instanceOf Float){
        System.out.println("x is float");
    }

}

kotlin

//when语句要比switch强大的多的多

fun main(args:Array<String>){
    //类似switch
    when(x){
        1->println("1")
        2->println("2")
        else->{
            println("else")
        }
    }
    
    //合并多分枝
    when(x){)}{
        1,2->println("1 or 2")
        else->{
            println("else")
        }
    }
    
    //检测一个值在不在一个区间或集合中
    when(x){
        in 1..10 -> println("x is in the range")
        in validNumbers -> println("x is valid")
        !in 10..20 -> println("x is outside the range")
        else -> println("else")
    }
    
    //检测是不是一个特定的类型
    fun hasPrefix(x:Any):Boolean = when(x){
        is String -> x.startsWith("prefix")
        else -> false
    }
    
    //when 也可以用来取代 if-else if链
    when{
        x.isOdd()-> println("x is odd")
        x.isEven()-> println("x is even")
        else -> println("x is funny")
    
    }
    
    
}

最后

以上就是忧郁外套为你收集整理的Kotlin与Java基本语法对比(四)的全部内容,希望文章能够帮你解决Kotlin与Java基本语法对比(四)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部