Kotlin入门1. 语法基础
liuian 2025-03-12 16:41 29 浏览
一、简介
Kotlin是一种静态编程语言,由JetBrains开发。它被设计为与Java兼容,并且可以在Java平台上运行。Kotlin支持现代编程语言的许多特性,如函数式编程、对象导向编程和元编程。这使得Kotlin能够方便地与Java代码混编,并且可以在没有JVM(Java虚拟机)的设备上运行。
Kotlin可以编译成Java字节码,因此可以在Java虚拟机上运行。此外,Kotlin也可以编译成JavaScript,使得它可以在浏览器中运行。这使得Kotlin成为一个适用于各种平台的多平台语言。
Kotlin的主要特点包括:
- 兼容Java:Kotlin可以与Java代码和库无缝交互,这使得它易于在现有Java项目中使用。
- 空值安全:Kotlin对空值进行了严格的检查,这减少了NullPointerException等常见错误。
- 函数式编程:Kotlin支持函数式编程,这使得它可以轻松地处理集合和数组。
- 简洁的语法:Kotlin的语法比Java更简洁,这使得编写和理解代码变得更加容易。
- 与Java虚拟机(JVM)的兼容性:Kotlin编写的代码可以在Java虚拟机(JVM)上运行,这使得Kotlin成为一个适用于构建跨平台应用程序的强大工具。
Kotlin已正式成为Android官方支持开发语言,这使得它成为开发Android应用的一个越来越受欢迎的选择。
本学习系列使用开发工具为: - windows 11 - Idea
二、在Idea创建一个示例项目
在这里插入图片描述
创建好的项目带一个示例程序:
在这里插入图片描述
三、基本语法
1. 第一个程序
- Kotlin文件扩展名为.kt;
- Kotlin 程序运行的起点为 main 函数;
写一个简单的.kt程序:
fun main(args: Array) {
println("Hello World!")
} 点击运行按钮运行程序。
在这里插入图片描述
要点: - kotlin 语句不需要用;结束 -
2. 基本数据类型
(1) 数字
定义数据类型的语法:
val i: Int = 100Kotlin内置的数字类型: - Double 64位 - Float 32位 - Long 64位 - Int 32位 - Short 16位 - Byte 8位 Kotlin默认的小数类型为Double类型。 Kotlin支持 _ 分割数字,如 1_0000。
(2) 类型转换
- 转换为字节型 : 10.toByte()
- 转换为短整型: (12.34).toShort()
- 转换为整型: (12.34).toInt()
- 转换为长整型:(1234.56).toLong()
- 转换为单精度小数:123.toFloat()
- 转换为双精小数: 123.toDouble()
- 转换为字符:123.toChar()
(3) 数学运算
- 常见运算: + - * /
位运算
- shl 带符号左移;shr()
- shr 带符号右移
- ushr:无符号右移
- and(bits): 与 &
- or(bits) : 或 ||
- xor(bits): 异或
- inv() : 取反
(4)可空类型
如String? , Int、
3. 函数
函数是可重用的代码块,可以执行一个特定的任务,并且可以带有参数和返回值。在Kotlin中,函数的基本结构如下:
fun functionName(parameters): returnType {
// function body
// perform some action
return someValue
}其中:
- fun 是关键字,用于声明这是一个函数。
- functionName 是你给函数起的名字。
- parameters 是传递给函数的参数,可以有零个或多个。参数之间用逗号分隔。
- returnType 是函数返回的数据类型。如果函数不返回任何值,则使用 Unit。
- function body 是函数的具体实现,这里可以执行需要的任务。
- return someValue 是函数执行完毕后返回的值。如果函数没有返回值,则不需要这个语句。
下面是一个具体的盒子:
fun add(a: Int, b: Int): Int {
return a + b
}这个函数名为 add,它接受两个整数参数 a 和 b,并返回它们的和。调用的方法如下:
val result = add(3, 4)
println(result) // Prints: 7这个函数通过加法运算实现了它的任务,并返回结果。
4. 字符串
Kotlin字符串是一个字符序列,可以使用双引号(" ")括起来的字符序列来表示。例如:
val str = "Hello, World!"在Kotlin中,字符串还支持许多操作,如拼接、查找、替换、分割等。下面是一些常用的字符串操作示例:
(1) 字符串拼接
在Kotlin中,可以使用加号(+)操作符来拼接字符串。例如:
val str1 = "Hello"
val str2 = "World"
val result = str1 + str2 // 拼接字符串
println(result) // 输出:HelloWorld(2) 字符串查找
在Kotlin中,可以使用contains()方法来检查一个字符串是否包含另一个字符串。例如:
val str = "Hello, World!"
val searchStr = "World"
if (str.contains(searchStr)) {
println("The string contains \"$searchStr\"")
} else {
println("The string does not contain \"$searchStr\"")
}输出:
The string contains "World"(3) 字符串替换
在Kotlin中,可以使用replace()方法来替换字符串中的某个或某些字符。例如:
val str = "Hello, World!"
val newStr = str.replace("World", "Kotlin")
println(newStr) // 输出:Hello, Kotlin!(4) 字符串分割
在Kotlin中,可以使用split()方法将字符串按照指定的分隔符分割成字符串数组。例如:
val str = "apple,banana,orange"
val arr = str.split(",") // 以逗号为分隔符,将字符串分割成字符串数组
for (item in arr) {
println(item) // 输出:apple、banana、orange
}5. null 安全的变量
null是一个特殊的关键字,表示空值。在某些情况下,如果一个变量的值为null,可能会导致程序出现异常或错误。因此,确保变量的值不为null是非常重要的。在Kotlin中,null安全是一种保障,用于确保程序中不会出现null值。
Kotlin是一种静态类型语言,编译器在编译时会检查代码中可能存在的类型错误同,其中之一就是null安全。Kotlin通过类型推断和注解来确保变量的值不为null。
在Kotlin中,可以使用null关键字来表示空值。 为了避免出现空指针异常,Kotlin提供了一些机制来确保null安全。
- 首先,Kotlin具有空值安全类型。例如:
var str: String? = null在这个例子中,String?表示该变量可能为null。如果尝试在代码中调用str.length(),编译器会发出警告,因为这可能会导致空指针异常。
为了解决这个问题,可以使用非空判断(non-null assertion)。例如:
if (str != null) {
println(str.length())
} else {
println("String is null")
}在这个例子中,如果str不为null,则可以调用str.length()。否则,将输出"String is null"。
另外,Kotlin还提供了一些其他机制来确保null安全。例如:
- Elvis运算符(?:):如果左边的表达式为null,则返回右边的表达式。例如:str?.length() ?: 0表示如果str不为null,则返回str的长度,否则返回0。
- Optional类型:在Java中,可以使用Optional类型来避免返回null值。在Kotlin中也可以使用类似的类型来确保null安全。例如:fun findName(): Optional? { ... }表示该函数返回一个可能为null的Optional类型的变量。
- 使用Java的注解:在Java中,可以使用@NonNull和@Nullable注解来标记方法的参数或返回值是否可以为null。在Kotlin中也可以使用这些注解来确保null安全。
相关推荐
- 421文档 全文免费阅读(421小说在线阅读)
-
根据1,我回答如下:1,"421文档"是在4月21日发布的。2,"421文档"作为一份重要的文件,通常在特定日期或时间点发布,供相关人员参考和使用。3,除了发布日...
- 阿里旺旺网页版登录入口(阿里旺旺卖家版官网)
-
手机淘宝的旺旺在打开商品后,会看到左下角有个旺旺的图标,点击就可以联系了。 阿里旺旺是将原先的淘宝旺旺与阿里巴巴贸易通整合在一起的一个新品牌。它是淘宝和阿里巴巴为商人量身定做的免费网上商务沟通软件,...
- 网易电脑版登录入口(main.163网易电脑版登录入口)
-
http://mail.163.com步骤一:输入邮箱官网网址http://mail.163.com/打开163邮箱登录入口界面。步骤二:输入已有的邮箱账号、密码,点击登录即可。步骤三:如果没有邮箱账...
- qq截图快捷键不能用(qq快捷截图不能使用)
-
笔记本上面的PrtSC能用么,是不是需要用Fn+这个按键才能截屏呀。有些机器在bios下有Fn快捷键设置,你需要把这个功能键开启或者关闭后才能单独点击使用。或者你使用Fn+PrtSC在试试,另外,何必...
- 大地影视中文第二页的背景故事
-
大地影院通常会有明显的入口标识,你可以根据影院外部的建筑结构和指示牌来找到入口。一般来说,大地影院的入口可能位于建筑的主立面或者侧面,有时也可能位于地下停车场或者商场内部。当你到达影院所在的建筑时,可...
- win10共享打印机需要密码(win10共享打印机需要密码吗)
-
共享打印机需要输入用户名和密码,该如何操作,下面给大家来介绍下。1、首先打开电脑的控制面板,点击管理工具。2、然后在打开的管理工具窗口中,点击本地安全策略。3、接着在打开的页面中,点击本地策略。4、然...
- 系统引导启动项怎么设置(系统引导按哪个键)
-
如果您想在计算机启动时添加系统启动引导选项,可以按照以下步骤进行操作:1.打开“运行”窗口,可以通过快捷键Win+R打开“运行”窗口。2.在“运行”窗口中输入“msconfig”命令,并点击“...
- win10录屏快捷键ctrl+alt+(win10录屏功能快捷键)
-
答,笔记本电脑录屏快捷键是ctrl+alt+s。绝大多数人录制屏幕时,第一个想到的就是电脑自带的录屏功能,比较的方便快捷。这种方法运用起来时非常简单的,只需在键盘上同时按下“ctrl+alt+s”键就...
- 壁纸下载(壁纸下载安装)
-
回答如下:要下载电视屏保相册,您需要先找到适用于您的电视的屏保应用程序。这些应用程序可能会根据您的电视品牌和型号而有所不同,您可以在电视的应用商店中搜索或查看电视制造商的网站以获取更多信息。一旦您找到...
- 木马病毒下载安装(木马病毒下载安装不实名认证)
-
现在1,你自己机器上下载个杀毒软件,安装之后不要删除安装包2,运行杀毒软件3,插入优盘,杀毒软件会自动扫描优盘发现病毒然后提示你4,选择处理/杀毒/清理这些字样5,把杀毒软件安装包复制到优盘6,右键优...
- 手机cdr转jpg最简单的方法(手机cdr转换jpg)
-
cdr文件怎么转换成jpg,快来看下操作方法吧。方法/步骤1、打开电脑中的cdr软件,点击文件,打开,打开需要转换格式的cdr文件。2、点击菜单栏的文件,导出。3、打开导出对话框选择保存文件路径。4、...
- xp永久激活工具(xp永久激活码)
-
如果你需要重置XP的激活器,你需要先打开“开始”菜单,然后选择“运行”。在运行对话框中,输入“regedit”,然后按回车键。这会打开注册表编辑器。在编辑器中,使用左侧面板来导航到“HKEY_LOCA...
- cad2008激活序列号(激活cad的序列号)
-
1.首先运行“AutoCAD2008安装包”中的“Setup.exe”安装AutoCAD2008,安装过程需要十分钟左右;2.第一次运行AutoCAD2008时,请在注册界面输入序列号666-9...
- 一周热门
-
-
飞牛OS入门安装遇到问题,如何解决?
-
如何在 iPhone 和 Android 上恢复已删除的抖音消息
-
Boost高性能并发无锁队列指南:boost::lockfree::queue
-
大模型手册: 保姆级用CherryStudio知识库
-
用什么工具在Win中查看8G大的log文件?
-
如何在 Windows 10 或 11 上通过命令行安装 Node.js 和 NPM
-
威联通NAS安装阿里云盘WebDAV服务并添加到Infuse
-
Trae IDE 如何与 GitHub 无缝对接?
-
idea插件之maven search(工欲善其事,必先利其器)
-
如何修改图片拍摄日期?快速修改图片拍摄日期的6种方法
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
