Kotlin入门1. 语法基础
wptr33 2024-12-13 16:37 14 浏览
一、简介
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<String>) {
println("Hello World!")
}
点击运行按钮运行程序。
在这里插入图片描述
要点: - kotlin 语句不需要用;结束 -
2. 基本数据类型
(1) 数字
定义数据类型的语法:
val i: Int = 100
Kotlin内置的数字类型: - 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安全。
相关推荐
- 「网络安全」JAVA代码审计——XXE外部实体注入
-
一、WEB安全部分想要了解XXE,在那之前需要了解XML的相关基础二、XML基础...
- Web前端面试题目及答案汇总(web前端面试题最新)
-
Web前端面试题目及答案汇总来源:极客头条以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中无法解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,...
- 什么是脚本文件?与可执行文件有什么不同?
-
今天的内容是脚本文件和可执行文件是两种不同类型的计算机文件,它们在结构和执行方式上有显著区别。脚本文件:定义与特性...
- 20个实用Python运维脚本(收藏级)(python 运维工具)
-
系统环境:支持Linux(Ubuntu/CentOS/Debian)和Windows...
- 2026年前每个开发者都应该学习的技能
-
优秀开发者...
- Linux 如何每 5、10、15 或 30 分钟运行一次 Cron 作业?
-
在Linux系统中,Cron是一个强大的工具,用于自动化重复性任务。通过合理配置...
- Shell脚本编程进阶实战:从入门到高效自动化
-
Shell脚本编程进阶实战:从入门到高效自动化一、参数处理进阶:打造专业级CLI工具1.高级参数解析示例...
- 在Bash中按分隔符拆分字符串的方法
-
技术背景在Bash脚本编程中,经常会遇到需要按特定分隔符拆分字符串的需求,例如处理CSV文件、解析日志等。掌握字符串拆分的方法对于数据处理和脚本自动化非常重要。...
- 程序员用5分钟,把一个400多MB的苹果安装包削掉了187MB
-
丰色发自凹非寺量子位|公众号QbitAI前些日子,一个...
- 如何在 Windows 上编写批处理脚本
-
你知道如何使用命令提示符吗?如果这样做,您可以编写一个批处理文件。在最简单的形式中,批处理文件(或批处理脚本)是双击文件时执行的几个命令的列表。批处理文件一直回到DOS,但仍然适用于现代版本的Win...
- 一文搞懂shell脚本(shell脚本应用实战)
-
一文搞懂shell脚本1、shell脚本介绍什么是shell脚本...
- 一文讲清ShellScript脚本编程知识
-
摘要:本文详尽地讲述了ShellScript的基础内容,还有它在Linux系统里的运用情况,涵盖了它的基本语法、常用的命令以及高级的功能。ShellScript可是一种简单又非常实用的编...
- 在Bash脚本中获取自身所在目录的方法
-
技术背景在使用Bash脚本时,有时需要获取脚本自身所在的目录。比如,当脚本作为另一个应用程序的启动器时,需要将工作目录更改为脚本所在的目录,以便对该目录中的文件进行操作。然而,由于脚本的调用方式多样(...
- shell中如何确定脚本的位置?这篇文章告诉你
-
我想从同一个位置读取一些配置文件,如何确定脚本的位置?。这个问题的出现主要是由两个原因引发的:一是您希望将脚本的数据或配置进行外部化,因此需要一种方式来寻找这些外部资源;二是您的脚本需要对某些捆绑资源...
- bash shell 语法(bash命令用法)
-
下面是**Shell(Bash)语法的常用知识点总结**,适合初学者和日常脚本编写参考。内容涵盖变量、判断、循环、函数、重定向、正则、数组等常见用法。---#Shell(Bash)语法速查总结...
- 一周热门
-
-
C# 13 和 .NET 9 全知道 :13 使用 ASP.NET Core 构建网站 (1)
-
因果推断Matching方式实现代码 因果推断模型
-
git pull命令使用实例 git pull--rebase
-
面试官:git pull是哪两个指令的组合?
-
git 执行pull错误如何撤销 git pull fail
-
git pull 和git fetch 命令分别有什么作用?二者有什么区别?
-
git fetch 和git pull 的异同 git中fetch和pull的区别
-
git pull 之后本地代码被覆盖 解决方案
-
还可以这样玩?Git基本原理及各种骚操作,涨知识了
-
git命令之pull git.pull
-
- 最近发表
- 标签列表
-
- git pull (33)
- git fetch (35)
- mysql insert (35)
- mysql distinct (37)
- concat_ws (36)
- java continue (36)
- jenkins官网 (37)
- mysql 子查询 (37)
- python元组 (33)
- mybatis 分页 (35)
- vba split (37)
- redis watch (34)
- python list sort (37)
- nvarchar2 (34)
- mysql not null (36)
- hmset (35)
- python telnet (35)
- python readlines() 方法 (36)
- munmap (35)
- docker network create (35)
- redis 集合 (37)
- python sftp (37)
- setpriority (34)
- c语言 switch (34)
- git commit (34)