Kotlin入门实战(一):变量、函数与判断 —— 与Java、Python的全方位对比
前言Kotlin 作为 Android 官方开发语言以其简洁、安全、与 Java 的完美互操作而广受欢迎。对于有 Java 或 Python 基础的开发者学习 Kotlin 可以借助对比快速掌握核心语法。本篇作为系列第一篇聚焦三大基础变量声明、函数定义和条件判断通过三种语言的代码对比帮你轻松迈出第一步。一、变量val 和 var 的哲学1.1 Kotlin 声明方式Kotlin 提供两种变量关键字val只读变量相当于 Java 的final初始化后不可重新赋值。var可变变量。valname:StringKotlin// 类型推断可省略类型valage5varcount0count1// var 可以重新赋值// name Java // 编译错误val 不能被重新赋值1.2 对比 JavaJava 中的变量必须显式指定类型或使用final定义常量。finalStringnameJava;// 不可变intage10;intcount0;count1;// name Kotlin; // 编译错误1.3 对比 PythonPython 是动态类型语言没有val/var限制变量可以随时重新赋值甚至可以更换类型。namePythonage10count0count1name123# 完全合法但容易出错总结Kotlin 通过val鼓励不可变性减少副作用同时保留了var的灵活性类型推断让代码更简洁。二、函数fun 的优雅2.1 Kotlin 函数基本写法fungreet(name:String,times:Int):String{returnHello,$name! *times}// 表达式体函数funadd(a:Int,b:Int)ab// 默认参数funsay(message:StringHi)println(message)2.2 对比 JavaJava 要求显式返回类型类型写在参数前面。publicStringgreet(Stringname,inttimes){returnHello, name! times;}publicintadd(inta,intb){returnab;}// 没有默认参数常使用重载模拟2.3 对比 PythonPython 使用def支持默认参数和动态类型。defgreet(name,times):returnfHello,{name}! *timesdefadd(a,b):returnabdefsay(messageHi):print(message)差异点Kotlin 的函数参数和返回类型明确比 Python 更安全又比 Java 简洁表达式体、默认参数。$字符串模板也是一大亮点。三、条件判断if 与 when 的灵活3.1 if-else 作为表达式Kotlin 的if可以返回值直接赋值给变量。valmaxif(ab)aelsebvalresultif(score90){优秀}elseif(score60){及格}else{不及格}3.2 when 表达式替代 switchvalgradewhen(score){in90..100-Ain80..89-Bin70..79-Celse-D}// 甚至可以判断类型fundescribe(obj:Any):Stringwhen(obj){isInt-整数isString-字符串else-未知类型}3.3 对比 JavaJava 的if不能直接作为表达式赋值switch 功能有限。intmax;if(ab){maxa;}else{maxb;}Stringresult;if(score90){result优秀;}elseif(score60){result及格;}else{result不及格;}// switch 只支持整数、字符串、枚举Java 14 有增强但仍不如 when 强大3.4 对比 PythonPython 的if-else可以在一行中使用但没有类似when的语法糖常用if-elif-else或字典模拟。max_valaifabelsebifscore90:result优秀elifscore60:result及格else:result不及格# 模拟 when使用字典grade_map{(90,100):A,(80,89):B,(70,79):C}gradenext((vfork,vingrade_map.items()ifk[0]scorek[1]),D)总结Kotlin 的when比 Java 的switch和 Python 的模拟方案更强大、可读同时if表达式让代码更紧凑。四、总结通过本篇的对比我们可以看到 Kotlin 在设计上既吸收了 Java 的类型安全又借鉴了 Python 等语言的简洁表达val/var平衡了可变性与不可变性函数语法精炼字符串模板直击痛点if表达式和when让条件逻辑成为“值”极大减少了样板代码。接下来我们将继续深入 Kotlin 的类、空安全、集合操作等高级特性。如果你是一个 Java 或 Python 开发者相信你已经感受到了 Kotlin 的优雅与高效。不妨打开 IDE 亲自敲一敲上面的代码即刻开启 Kotlin 之旅在线编程练习https://kotlinlang.org/