Kotlin的基本语法

Android  Kotlin  2024年9月11日 pm6:34发布4周前更新 91es.com站长
43 0 0

前言

简单记录一下Kotlin的基本语法

这里只是简单的记录,只是方便自己而已。

正文

注释

注释是为了使代码易于阅读。

单行注释

单行注释通常是对程序中的某一行代码进行解释,用符号“//”表示

//初始化UI
initUI();
多行注释

多行注释就是注释中的内容可以是多行,以符号“/ ”开头,以符号“/”结尾。

/*
 * 初始化UI
 * 主要View的初始化
 */
initUI();
文档注释

文档注释是以“/ *”开头,并在注释内容末尾以“/”结束,是对一段代码概括的解释说明。

/**
 * 初始化UI
 * 主要View的初始化
 * //省略一万字
 */
 initUI();

好的习惯从注释开始!

变量

变量分为两种类型,分别是可变变量与不可变变量(只读变量)。

  1. 可变变量用关键字var来修饰,可以进行多次修改。

  2. 不可变变量用关键字val来修饰,只能进行一次初始化。

变量
// 不可变Int类型的mNumber
val mNumber: Int = 0

//可变Float类型的mTemp
var mTemp: Float

如果给不可变的mNumber赋值,就会提示

val mNumber: Int = 0
//提示错误Val cannot be reassigned
mNumber = 100
赋值

给变量赋值分为两种方式,第1种是声明变量的同时给变量赋值,第2种是声明变量和变量赋值分开设置。

方式1

声明变量的同时给变量赋值。

val mNumber: Int = 0
方式2

声明变量和变量赋值可以分开设置

var mOther: Int
mOther = 100

注意事项

  1. 在不赋值的情况下,只声明变量不约束具体类型时,程序会报错

//提示:This variable must either have a type annotation or be initialized
var mOther 
  1. 在同一方法体中,不能重复定义一个变量,否则编译器会提示命名冲突

//提示:Conflicting declarations: var other: Int, var other: Float
var mOther:Int
var mOther:Float
  1. 可变变量可以多次赋值,不可变变量不可以进行二次赋值

var mOther: Int
//var变量可以赋值多次
mOther = 1
mOther = 2

val mTemp: Int
//val变量值可以赋值一次
mTemp = 0
//提示:Val cannot be reassigned
mTemp = 2
变量的数据类型

Kotlin语言中的数据类型分为数值型、字符型、布尔型、数组型、字符串型。

数值类型变量

数值类型有Byte(字节)、Short(短整型)、Int(整型)、Long(长整型)、Float(浮点型)、Double(双精度浮点型)。

Kotlin中数值类型变量所占存储空间的大小以及存储值的范围,如下:

Kotlin的基本语法

var mByte: Byte = 1
var mShort: Short = 1
var mInt: Int = 1
var mLong: Long = 1L
var mFloat: Float = 1F
var mDouble: Double = 1.0
布尔类型变量

布尔类型变量用于存储布尔值,在Kotlin中用Boolean表示,该类型的变量只有两个值,分别是true和false。

var mHappy: Boolean = true
var mNoHappy = false
字符类型变量

字符类型变量用于存储一个单一字符,在Kotlin中用Char表示。Kotlin中每个字符类型变量都会占用2个字节。

var mChar:Char = 'A'
var mChar1 = 'C'
数组类型变量

数组是用Array表示,其中数值类型、布尔类型、字符类型都有数组的表现形式。

这些数组类型变量的初始化有两种方式,一种是以[数值类型ArrayOf()]方法进行初始化,另一种是以arrayOf()方法进行初始化。

数值类型ArrayOf()

比如

var mIntArray = intArrayOf(1, 2, 3)
var mFloatArray = floatArrayOf(1f, 2f, 3f)
var mCharArray = charArrayOf('1', '2', '3')
var mBooleanArray = booleanArrayOf(true, false, true)
var mByteArray = byteArrayOf(1, 2, 3)

在Kotlin中不能使用stringArrayOf()方法创建字符串类型数组,因为String不属于基本数值类型。

arrayOf()
var mIntArray = arrayOf(1, 2, 3)
var mFloatArray = arrayOf(1f, 2f, 3f)
var mCharArray = arrayOf('1', '2', '3')
var mBooleanArray = arrayOf(true, false, true)
var mByteArray = arrayOf(1, 2, 3)
//String 
var stringArray: Array<String> = arrayOf("1", "2", "3")
字符串类型变量

字符串类型变量用于存储多个字符,使用“”包括起来。

var mString: String = "百度一下"
var mString1 = "谷歌一下"

运算符

运算符可分为算术运算符、赋值运算符、比较运算符和逻辑运算符。

算术运算符

在数学运算中最常见的就是加减乘除,被称作四则运算。

Kotlin的基本语法

注意事项:

  1. 除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数,如果除法运算中有小数参与,得到的结果会是一个小数。

var mInt =  3/2
var mFloat = 3.0/2
var mFloat2 = 3/2.0

输出的结果

1
1.5
1.5
  1. 在进行取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关

var mInt = -3 % 2
var mInt1 = 3 % -2
var mInt2 = 3 % -2.0
var mInt3 = 3.0 % -2

输出结果

-1
 1
 1.0
 1.0
  1. 在进行自增“++”和自减“--”的运算时,如果运算符“++”或“--”放在操作数的前面则是先进行自增或自减运算,再进行其他运算。反之,如果运算符放在操作数的后面则是先进行其他运算再进行自增或自减运算。

var mA = 1
var mB = 2
var mC = mA + mB++
var mD = mA++
  1. mA加1是因为mD运算后自增

  2. mB加1是因为mC运算后自增

  3. mC是mA+mB,=优先级比++更高

  4. mD同上mC,=优先级更高

mA : 2
mB : 3
mC : 3
mD : 1
赋值运算符

赋值运算符的作用就是将数值、变量或表达式的值赋给某一个变量。

Kotlin的基本语法

在赋值过程中,运算顺序从右往左,将右边表达式的结果赋值给左边的变量。

除了“=”之外,其余的都是特殊的赋值运算符。以“+=”为例,a+=5就相当于a=a+5,首先会进行加法运算a+5,再将运算结果赋值给变量a。

比较运算符

比较运算符用于对两个数值、变量或者表达式进行比较,其结果是一个布尔值,即true或false。

Kotlin的基本语法

逻辑运算符

逻辑运算符是对布尔型的数据进行操作,其结果仍是一个布尔类型数据。

Kotlin的基本语法

  1. 运算符&&表示与操作,当且仅当运算符两边的表达式都为true时,其结果才为true,否则结果为false。当运算符左边的表达式为false时,运算符右边的表达式不会进行运算,结果为false,因此&&被称作短路与。

  2. 运算符||表示或操作,当运算符两边的操作数任何一边的值为true时,其结果都为true,当两边的值都为false时,其结果才为false。同与操作类似,||表示短路或,当运算符||的左边为true时,右边的表达式不会进行运算,结果为true。

参考文章

  1. 《Kotlin从基础到实战》

 历史上的今天

  1. 2023: OkHttp分析之同步请求(0条评论)
  2. 2022: Socket的简单使用记录(0条评论)
  3. 2020: Android监听状态栏的显示与隐藏状态栏(0条评论)
  4. 2019: 梁文道:在铁路上开餐(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

Android启动Activity到副屏

前言随着Android版本的提高,现在Android设备大都存在2个屏幕,也就是主屏和副屏。偶尔需要把指定副屏显示指定的界面,因此有空整理一下相关内容。记录于此,方便自己查阅。正文记录一下常用的几种方式,启动Activity到副屏,也对比一下优缺点。隐藏内容!付费阅读后才能查看!¥2 ...

[摘]Ubuntu 常用解压与压缩命令

前言Ubuntu中解压文件的命令老是忘记,不同压缩后缀使用的命令也不一样。本文摘抄,原文在文章末尾。好记忆不如烂笔头正文.tar 文件# 仅打包,并非压缩tar -xvf FileName.tar # 解包tar -cvf FileName.tar DirName ...

王小波:如何诚实地生活?

人忠于已知事实叫做诚实,不忠于事实就叫做虚伪。还有些人只忠于经过选择的事实,这既不叫诚实,也不叫虚伪,我把它叫做浮嚣。这是个含蓄的说法,乍看起来不够贴切,实际上还是合乎道理的:人选择事实,总是出于浮嚣的心境。过去我有过这样的人生观:人应该为别人而活着,致力于他人的幸福,不考虑自己的幸福。这是因为人...

Source Insight 4.0安装

前言简单记录一下Source Insight 4.0的安装,方便自己使用。Source Insight确实是个好软件。正文下载下载Source Insight 4.0安装包://官网https://www.sourceinsight.com/download/下载程序破解补丁包:...

Android磁盘之U盘挂载

前言之前介绍Vold的启动,没有涉及U盘的挂载,今天在之前的基础上进行插入U盘时流程的分析。Android P这里很多都是网上的,我就走走流程。正文VolumeManager.cpphandleBlockEvent()void VolumeManager::handleBlock...

Android应用被杀的日志分析记录

前言最近Android项目中出现一个问题,应用开机源记忆拉起,突然被强制性退了(看Activity的生命周期),搞得我一时懵逼了。日志有这几个打印BufferQueueConsumer( 419): [Splash Screen com.la.media#0](this:0x7ccbe90...