当前位置: 首页 > news >正文

(一)Kotlin—基础语法


文章目录

  • (一)Kotlin——基础语法
    • 1. 变量
    • 2. 运算符
      • 2.1 算数运算符
      • 2.2 位运算符
      • 2.3 逻辑运算符
    • 3. 流程控制
      • 3.1 if-else
      • 3.2 when
      • 3.3 for
      • 3.4 while
      • 3.5 do-while

(一)Kotlin——基础语法

本教程不适合完全零基础的学习者,不会详细解释变量、类型、循环、条件判断等通用编程概念。它更适合已经有 Java 基础、正在快速入门 Kotlin 的用户。文档只保留常用语法和简单示例,帮助你快速建立 Kotlin 与 Java 之间的语法对应关系。

1. 变量

Kotlin 中变量主要分为两类:

关键字含义类比 Java
val只读变量,赋值后不能重新赋值类似final变量
var可变变量,可以重新赋值普通变量
var变量名称:数据类型val变量名称:数据类型// 示例:vala:Int=10varb:Int=20b=30

Kotlin 支持类型推断,能推断出类型时可以省略类型声明:

vala=10// 推断为 Intvalname="Tom"// 推断为 String

整型

类型大小(位)最小值最大值
Byte8-128127
Short16-3276832767
Int32-2,147,483,648 (-2^31)2,147,483,647(2^31-1)
Long64-9,223,372,036,854,775,808 (-2^63)9,223,372,036,854,775,807(2^63 - 1)
funmain(){valage:Int=18valcount=100valdistance:Long=10000000000Lprintln(age)// 18println(count)// 100println(distance)// 10000000000}

浮点型

类型大小(位)符号与尾数位数小数位数
Float32246-7
Double645315-16
funmain(){valprice:Double=19.99valscore:Float=98.5Fprintln(price)// 19.99println(score)// 98.5}

布尔型

类型
Booleantruefalse
funmain(){valisLogin:Boolean=truevalisVip=falseprintln(isLogin)// trueprintln(isVip)// false}

字符型

类型含义示例
Char单个字符,使用单引号'A''中'
funmain(){valc:Char='A'println(c)// A}

字符串类型

类型含义示例
String字符串,使用双引号"Hello Kotlin"
funmain(){vala=10valtext="这是拼接的值$a"// $ 是模板表达式,会把变量值拼接到字符串中valtext2="计算结果:${a+20}"// 表达式需要用 ${}println(text)// 这是拼接的值10println(text2)// 计算结果:30}

2. 运算符

2.1 算数运算符

运算符含义示例
+加法a + b
-减法a - b
*乘法a * b
/除法a / b
%取余a % b
++自增a++
--自减a--
funmain(){vara=10valb=3println(a+b)// 13println(a-b)// 7println(a*b)// 30println(a/b)// 3println(a%b)// 1a++println(a)// 11}

2.2 位运算符

Kotlin 没有 Java 中的<<>>&|这类位运算符写法,而是使用函数形式。位运算只适用于IntLong类型。

Kotlin 写法含义Java 类比
a shl b有符号左移a << b
a shr b有符号右移a >> b
a ushr b无符号右移a >>> b
a and b按位与a & b
a or b按位或`a
a xor b按位异或a ^ b
a.inv()按位取反~a
funmain(){vala=8// 二进制:1000valb=2println(ashlb)// 32println(ashrb)// 2println(aandb)// 0println(aorb)// 10println(axorb)// 10println(a.inv())// -9}

2.3 逻辑运算符

运算符含义示例
==判断值相等a == b
!=判断值不相等a != b
<小于a < b
>大于a > b
<=小于等于a <= b
>=大于等于a >= b
in判断是否在范围内x in 1..10
!in判断是否不在范围内x !in 1..10
&&逻辑与a > 0 && b > 0
``
!逻辑取反!flag
funmain(){vala=10valb=20valflag=trueprintln(a==b)// falseprintln(a<b)// trueprintln(ain1..10)// trueprintln(a>0&&b>0)// trueprintln(!flag)// false}

3. 流程控制

Kotlin 中ifwhen、循环语句的基本思想和 Java 类似。如果分支或循环体只有一行代码,可以省略{};如果有多行代码,必须保留{}

3.1 if-else

if(条件判断){条件成立时执行的代码}else{条件不成立时执行的代码}

Kotlin 中if-else可以作为表达式使用,即可以直接返回结果。

funmain(){valscore=85valresult=if(score>=60){"及格"}else{"不及格"}println(result)// 及格}

3.2 when

when类似 Java 中的switch,但功能更强,适合多分支判断。

when(目标){匹配值1->代码 匹配值2->代码else->代码}
funmain(){vallevel=2valresult=when(level){1->"初级"2->"中级"3->"高级"else->"未知等级"}println(result)// 中级}

when也可以判断范围:

funmain(){valscore=85valresult=when(score){in90..100->"优秀"in60..89->"及格"else->"不及格"}println(result)// 及格}

3.3 for

for(遍历出来的单个目标变量in可遍历目标){循环体}
funmain(){for(iin1..3){println("当前值:$i")// 当前值:1、当前值:2、当前值:3}}

指定步长:

funmain(){for(iin1..10step2){println(i)// 1、3、5、7、9}}

倒序遍历:

funmain(){for(iin10downTo1){println(i)// 10、9、8、7、6、5、4、3、2、1}}

不包含结束值:

funmain(){for(iin0until5){println(i)// 0、1、2、3、4}}

3.4 while

while先判断条件,条件成立才执行循环体。

while(循环条件){循环体}
funmain(){vari=100while(i>0){println(i)// 100、50、25、12、6、3、1i/=2}}

3.5 do-while

do-while会先执行一次循环体,再判断条件。因此不管条件是否成立,循环体至少执行一次。

do{循环体}while(循环条件)
funmain(){vari=0do{println("Hello World!")// 输出 10 次 Hello World!i++}while(i<10)}

✨✨✨

http://www.jsqmd.com/news/1090639/

相关文章:

  • MySQL 查询优化的执行计划分析
  • KingbaseES数据库空间管理实战:精准掌控库与表的数据体量
  • 欺诈检测化技术行为分析模型与实时规则引擎
  • 技术桥接的抽象实现分离设计
  • ShiroExploit v2.51实战解析:Apache Shiro反序列化漏洞自动化利用与防御
  • 竞争监测化技术竞品功能对比与市场情报收集
  • TestDisk终极指南:5步快速恢复丢失分区与数据
  • Paperclip - 多Agent编排管理平台详细介绍
  • 如何用Groove音乐播放器打造你的终极音乐管理系统
  • 想掌握手机号测吉凶技巧,913.com.cn平台详细解析
  • Bitget发布Web3人才报告:54%求职者受困「经验门槛」,AI与区块链融合成最热职业方向
  • 深度掌控AMD Ryzen:专业级SMU调试工具完全指南
  • Hermes - AI Agent 运行时框架详细介绍
  • ORCAD中连接符的使用
  • 别再熬夜写论文了!6款AI写作辅助平台,一键秒创超长篇幅内容!
  • 原型驱动可解释AI:让模型决策像人类一样可追溯
  • 如何高效配置ADBKeyBoard:3种实战方案深度解析Android自动化输入工具
  • 开源WPS AI插件察元AI文档助手:能力策略:风险类别与默认命名空间
  • 程序启动过程
  • 零基础 | Claude Code 工具推荐 claude-code-setup 和 Find Skills
  • 零食折扣店收银系统哪个牌子好?扫码快、上手简单才是关键
  • 革命性Blender插件管理器深度解析:2000+插件一键掌控的终极解决方案
  • 用SymPy自动求解追及问题的方程
  • esp32开发与应用(esp和wch芯片的配合)
  • 3种方案彻底解决海外镜像拉取失败:DaoCloud镜像加速服务深度实测
  • 终极游戏存档备份指南:为什么Ludusavi v0.29.0是玩家的必备工具?
  • 暗黑3战斗自动化革命:D3KeyHelper如何让重复操作成为历史
  • AFE5808A超声模拟前端芯片ADC与VCA寄存器配置实战指南
  • OpCore-Simplify:三分钟完成黑苹果EFI配置的终极自动化工具
  • 【小白也能轻松玩转龙虾】虾壳云一键部署私人助理,个人电脑搭建 OpenClaw v2.7.9 智能程序(附最新安装包)