Kotlin 学习-基础语法(1)

【Kotlin】Kotlin 基础语法指南 kotlin复制代码。 阅读详情

为什么要用kotlin

首先,看看Android开发者中心的回答:

  • 富有表现力且简洁:您可以使用更少的代码实现更多的功能。表达自己的想法,少编写样板代码。在使用 Kotlin 的专业开发者中,有 67% 的人反映其工作效率有所提高。
  • 更安全的代码:Kotlin 有许多语言功能,可帮助您避免 null 指针异常等常见编程错误。包含 Kotlin 代码的 Android 应用发生崩溃的可能性降低了 20%。
  • 可互操作:您可以在 Kotlin 代码中调用 Java 代码,或者在 Java 代码中调用 Kotlin 代码。Kotlin 可完全与 Java 编程语言互操作,因此您可以根据需要在项目中添加任意数量的 Kotlin 代码。
  • 结构化并发:Kotlin 协程让异步代码像阻塞代码一样易于使用。协程可大幅简化后台任务管理,例如网络调用、本地数据访问等任务的管理。

最关键的是什么呢?google 的力推!!!
随着kotlin 的扶正,越来越多的第三方的支持,jetpack的支持。。。。
反抗不了现实,那就一块学习拥抱kotlin吧。
先从基础语法开始。

1. 函数

在kotlin中 函数的常见写法如下所示:

fun sum(a Int, b Int): Int {
	return a + b
}

在上面的函数中,fun 表示这是一个函数,sum 是函数名称,(a Int, b Int) 是参数列表。
这里面参数跟 java的声明正好相反。而参数列表后面的:Int 是指返回类型。在这里我们可以看到代码的末尾并没有;在kotlin 中是可以省略的。

在kotlin 中像上面的函数还有更简单的写法,如下:

fun sum(a: Int, b: Int): Int = a + b
    
fun sum(a: Int, b: Int) = a + b

只有表达式体函数的返回类型才可以向上面这样省略。
对于有返回值的代码块体函数,必须显式的写出返回类型和return语句。

2. 变量

首先我们先看下在kotlin 中的变量常见的都有那些声明,

var name: String? = null // 初始值为null,可以再次赋值
var name2 = "tom" // 根据“tom”自动推断类型为String,可以再次赋值
val age: Int = 20  // 不可再次赋值

lateinit var adapter: UserAdapter // 延迟初始化,可以不设置初始值
// 懒加载 在用到的时候会执行lazy中的代码初始化
val homeAdapter: HomeAdapter by lazy { HomeAdapter(datas) }  

从上面的代码可以看出在kotlin 中,变量的声明声明是以关键字开始的。
val(来自value)-表示不可变引用。对应的是Java 中的final变量。
var(来自variable)-表示可变引用。变量的值可以被改变。

3. 字符串模板

对于字符串模板我们同样先看kotlin中的用法。

// print: tom的年龄是20
println("$name 的年龄是$age")
// print: 1 + 2 的值是:3
println("1 + 2 的值是:${sum(1, 2)}")

在kotlin中字符串的拼接更加便捷,$后面可以直接拼接变量,也可以通过{}符号来拼接表达式。

4. if条件表达式

kotlin中的if表达式用法,如下:

// if 是有返回值的  可以直接给变量赋值
var age3 = if (age > age2) age else age2

// 也可以在函数中使用
fun age() = if (age > age2) age else age2

从上面的例子可以看出if表达式是有返回值的,在代码块的最后一行就是返回值,在变量和函数中赋值都可以用到。

5. when表达式

先来看kotlin中when表达式的用法:

var age4 = when(name) {
    "Tom" -> 20
    "Jay" -> 25
    else -> 10
}

从上面的例子可以看出,when表达式跟if表达式一样,都是带返回值的表达式,用法有点像Java中的switch。但-> 的用法更简便,后边可以跟{}代码块,依然是最后一句代码为返回值。

6. for循环

kotlin中的for循环可以对任何的迭代器进行遍历,类似foreach,语法例子如下:

for (i in 1..3) {
    println(i)
}
print:
>1
>2
>3

for (i in 1 until 3) {
    println(i)
}
print:
>1
>2

for (i in 6 downTo 0 step 2) {
    println(i)
}
print:
>6
>4
>2
>0

从上面的第一个for循环中可以看出 1..3指的是区间包含首尾;
第二个for循环的until表示从1到3但不包含3;
第三个for循环的6 downTo 0 表示从6递减到0,step是步长,表示每次递减多少。

7. while循环

kotlin的while循环和Java的while循环没什么大的区别。如下:

while (x > 0) {
    x--
}

do {
  val y = retrieveData()
} while (y != null) // y 在此处可见

到这里kotlin的基础语法大概就差不过了,其他的跟java差不太多,主要还是一些习惯的问题。
kotlin的其他用法,比如习惯用法,顶层函数,扩展函数,高阶函数,协程。。。在后续的学习中再与大家分享吧。

Kotlin 基础语法详解:从入门到精通 本教程涵盖了 Kotlin 基础语法的主要部分,从变量、数据类型到函数、类、接口、异常处理等。通过学习这些基础知识,你将能够编写简单的 Kotlin 程序,并进一步学习更高级的特性。 阅读详情

相关推荐

Kotlin 基础语法

互操作性:Kotlin 与 Java 兼容,可以与 Java 代码共存。简洁性:Kotlin 语言简洁,易于阅读和维护。安全性:Kotlin 提供了空安全、异常安全等特性。多平台支持:Kotlin 可以用于 Android 开发、服务器端开发、前端开发等多种平台。class 类名 {// 类成员本文介绍了 Kotlin 的基础语法,包括数据类型、变量和常量、运算符、控制流、函数、类和对象等。通过学习本文,读者可以快速掌握 Kotlin 的基本语法,为后续的学习打下坚实的基础。

csbysj2020的博客 644

kotlin学习之for循环

java中的for循环有两种实现方式: for (int i = 0; i < 10; i++) { } for (int i = 10; i > 0; i--) { } private ArrayList<String> list = new ArrayList<>(); for (String item : list) { }  kotlin中...

qq_34198206的博客 2517

Kotlin 四则运算 (加、减、乘、除)

Kotlin 四则运算 (加、减、乘、除)

【2】Kotlin基础——for-in循环语句的使用

Kotlin语言中的for循环不同于Java语言,在Kotlin语言中for循环需要搭配in组成for-in循环用法来使用。

熊熊饲养员的优快云! 1355

Buck变换器中EA模块的优化设计与稳定性提升策略

本文深入探讨了Buck变换器中误差放大器(EA)模块的核心作用与优化设计。作为系统的“大脑”,EA模块的性能直接决定了电源的稳定性与动态响应。文章详细分析了EA的电路结构、工作原理,并重点阐述了通过优化增益、带宽和相位裕度来提升系统稳定性的策略,同时提供了实用的设计技巧与仿真验证方法。

weixin_29189381的博客 423

ubuntu18.04美化主题(完整版)

和网上的美化一样,但是我当初跟着博客美化的时候遇到一些问题,按博客的做法无法解决。 所以我自己也写一篇关于ubuntu18.04美化主题的博客。 第一步:安装主题工具:GNOME Tweaks sudo apt-get update sudo apt-get install gnome-tweak-tool 然后安装完成后我们打开Tweaks(截图如下): 第二步,修改窗口按钮位...

B丶atty的博客 7万+

Kotlin-12-循环(for+repeat+list遍历)

目录 1、方式一:点点循环递增 2、方式二:until循环递增 3、方式三:downTo循环递减 4、方式四:step 循环间隔 5、方式五:repeat重复循环 6、方式六:list遍历循环 7、方式七:list的解构遍历循环 1、方式一:点点循环递增 .. 代表从0到10的递增,包含10 /** * 1、这个循环的字面意思就是:i 从 0 到 10 循环...

Yo.o 9233

利用LATX技术在龙芯安同AOCS OS上部署坚果云:跨架构文件同步实战

本文详细介绍了如何在龙芯安同AOCS OS上,利用LATX指令翻译技术部署坚果云客户端,实现跨架构文件同步。通过安装LATX环境、解压x64安装包、运行安装脚本三步,成功在loongarch64架构上运行仅支持x86_64的软件,解决了国产平台办公协同的痛点,并分享了性能实测与优化建议。

weixin_29305337的博客 456

Kotlin入门(7)循环语句的操作

上一篇文章介绍了简单分支与多路分支的实现,控制语句除了这两种条件分支之外,还有对循环处理的控制,那么本文接下来继续阐述Kotlin如何对循环语句进行操作。Koltin处理循环语句依旧采纳了for和while关键字,只是在具体用法上有所微调。首先来看for循环,Java遍历某个队列,可以通过“for (item : list)”形式的语句进行循环操作。同样Kotlin也能使用类似形式的循环,区别在于

aqi00的博客 3418

告别‘抓瞎’:CANoe的Trace、Graphics和Logging窗口实战技巧,高效分析总线故障

本文深入解析CANoe的Trace、Graphics和Logging窗口实战技巧,帮助工程师高效分析总线故障。通过智能过滤、可视化监控和智能日志管理,构建系统级问题定位工作流,显著提升车载网络故障排查效率。

weixin_42709044的博客 292

Mcgs 屏幕Modbus RTU通讯调试

昆仑通态屏幕作为Modbus Master 与 Modbus Slave通过RS485接口实现通信的调试记录

madao1234的博客 5569

Kotlin学习2.3:运算符

Kotlin学习2.3:运算符算术运算符赋值运算符比较运算符逻辑运算符 算术运算符 算术运算符用于数值类型的运算,Kotlin语言支持基本的算术运算:加法“+”、减法“-”、乘法“*”、除法“/”、取余“%”、以及自增自减运算。 如: var IntA:Int = 5 + 5 // 10 val IntB:Int = 10 - 2 // 8 val IntC:Int = 3 * 4 // 12...

qq_43233085的博客 939

Python-OpenCV及cv2,numpy库最新安装教程[最全步骤]

安装教程目录前言OpenCV-Python安装教程报错解决cv2安装numpy安装opencv安装(附加)总结 前言 首先,我知道一些看到我的Blog的人已经在网上找了很多歪路子,现在已经火冒三丈了(我也是这样过来的hhhh),那么现在,深呼吸,跟着我的教程,不要着急,每一步都要读一遍。完整安装过程需要1个小时左右(仅供参考,本人第一次安装python花了一天(确信)) OpenCV-Python...

qq_45425286的博客 7430

Kotlin学习1—基础语法

1. 变量定义 1.1 变量与常量 // 变量,用var修饰 var str1: String? = null // 常量,用val修饰 val str2: String? = null 2. 逻辑控制 2.1 判断语句 2.1.1 if 语句使用 // if 判断语句与JAVA一致,常规写法 fun ifTest(a: A) { // is 关键字作用等于 JAVA中的 instance if (a is A) {

shu_lance的博客 706

萤石摄像头批量下载视频后FFmepg拼接

本文描述萤石摄像头,如何批量下载视频,然后把视频片段拼接为一个完整的视频,亲测有效。有问题,可以下面留言

烤鱼哥哥的博客 1202

【33】软考软件设计师——算法题(二):贪心法与回溯法深度精讲|第4题进阶满分攻略

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第33篇,承接第32篇分治法与动态规划,聚焦**下午第4题算法大题进阶核心**,详解贪心法与回溯法两大高频难点算法。全文超4000字深度拆解贪心法核心原理、贪心选择性质、局部最优推全局最优的底层逻辑,厘清贪心算法适用边界与经典误区;深挖回溯法深度优先遍历思想、递归回溯三步流程、可行性剪枝与最优性剪枝两大核心技巧;全覆盖活动选择、零钱兑换、01背包贪心禁区、八皇后、全排列等软考必考经典题型;配套标准化算法框架代码、考场填空模板、剪枝优化实操案例

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 439

Kotlin学习1----基础语法

Kotlin学习--------基础语法1 Kotlin 文件以 .kt 为后缀 包声明 代码文件的开头一般为包的声明: package com.example.kotlindemoone fun main() { val a = 10 println("a = "+a) } 注意: 打印日志尽量不要使用println(),而是应该使用Log,为什么这里却还是使用了println()呢?这是因为Log是Android中提供的日志工具类,而我们现在是独立运行的Kotlin代码,和Andr

m0_55622002的博客 289

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Kotlin学习笔记(1)-- 基础语法

Kotlin引用类型会转为Java的基本类型,即不消耗性能。引用类型(编译器在Java字节码中修改为基本类型)可读可改 变量名 类型 值。函数内定义,即在运行时在调用函数时给变量赋值。函数外定义,即在编译时给常量初始化。Set 无重复集合。Map 键值对集合。在函数内定义, 不能被修改。String 字符串。Char 单字符。常量只能是基本数据类型。Int 整形。Double 小数。List 集合。姓名hsq 年龄18。

qq_52410477的博客 1686

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Kotlin学习笔记1_基础语法

1. What’s Kotlin? – 引自百度百科 Kotlin 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发。 Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。 Kotlin已正式成为Android官方支持开发语言。 官方地址: http://kotlinlang.org/ Kotl...

dcj199411的专栏 235

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

kotlin学习笔记(1)--基础语法

1.常量,变量 常量的定义(只读) val <标识符> : <类型> = <初始化值> 变量的定义 var <标识符> : <类型> = <初始化值> 常量与变量都可以没有初始化值,但是在引用前必须初始化 val a: Int = 1 val b = 1 // 系统自动推断变量类型为Int val c: Int // 如...

onepiece_loves的博客 313

Kotlin学习笔记1-1 入门-基础语法

Kotlin Getting Started-Basic Syntax 入门-语法基础

hohoho get it up 364

Kotlin学习:1.4.语言基础之语法与标识符

语法与标识符修饰符关键字(保留字)操作符操作符和特殊符号操作符优先级参考地址 修饰符 在Kotlin源码项目中的kotlin/grammar/src/modefiers.grm文件中看,描述了Kotlin语言的修饰符。 访问权限控制修饰符(accessModifier) 访问权限修饰符 类成员 顶层声明 public 所有地方可见 所有地方可见 internal 模块中可见 模块中可见 protected 子类中可见 private 类中可见 文件中可见 类修饰符(clas

嗯... 517

Kotlin基础语法

Kotlin是一种在Java虚拟机上运行的静态类型编程语言,被称为之为Android世界的Swift,Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言,足见Kotlin将来会成为android开发的主流语言。

qtiao的博客 1万+

Kotlin学习(二)Kotlin基础语法

学习一门语言,我总是会先学习一下基本的语法。因为并不急着应用Kotlin去开发项目,所以,还是有很多的时间去学习。今天,简单的总结一下Kotlin的基本语法。

zhaojun的博客 2万+

Kotlin系列之基础语法

标签: Kotlin Kotlin基础语法 目录: 一、包的声明 二、函数的定义 三、常量和变量 四、注释 五、字符串模板 六、使用条件表达式 七、NULL检查机制 八、类型检测以及自动类型转换 九、区间 十、使用集合 十一、使用循环 十二、使用条件if,when 十三、创建类和实例 简述: Kotlin的基本语法的介绍,先从整体上体会kotlin的编程风格。 一

Mikyou的专栏 3508
上一篇: Android两个app间跳转-deepLink的使用
下一篇: Android 10 触控条出现大白条的问题
coder_yao
博客等级 码龄10年 9粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值