Kotlin的基本语法

Android  Kotlin  2024年9月11日 pm6:34发布1周前更新 91es.com站长
25 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、 本站内容: 部分来源于网络,仅供站长学习和参考,若侵权请留言

暂无评论

暂无评论...

随机推荐

毕淑敏:世上千寒,心中永暖

记得当年做医学生实习时,轮到去产科学接生。见那刚生下来的宝宝,一出母体,便放声大哭。倘在别处,听到有人痛嚎,众人必是关切不安,以示慰问。在产科接生室内,哭声便是捷报。若是不闻哭声,助产士便要心焦了。民间流传说,老式的接生婆如果听不到新生儿哭,会立马把孩子头朝下倒拎着,在屁股上猛砸几巴掌,娃儿惊哭出来...

王小波:写给新的一年

我们读书、写作——1995年就这样过去了。这样提到过去的一年,带点感慨的语调,感叹生活的平淡。过去我们的生活可不是这样平淡。在我们年轻时,每一年的经历都能写成一本书,后来只能写成小册子,再后来变成了薄薄的几页纸。现在就是这样一句话:读书、写作。一方面是因为我们远离了动荡的年代,另一方面,我们也喜欢平...

视频的关键帧和非关键帧

前言项目中有时候需要获取视频封面(缩略图,类似于图片列表),并展示给用户观看。下面是整理一下自己测试用的。总结目前我知道的就有如下两种方式,但对我来说不是太理想,不知道是否还有其他的更有效的方式获取视频封面,如果有知道的请留言,谢谢。使用ThumbnailUtils的createVid...

Thread.join()简单介绍

前言简单记录一下Thread.join()的作用。这里只是简单记录一下,方便自己回顾而已。正文join()是在Thread.java中定义join源码/** * Waits for this thread to die.[等待这个线程死亡] * @throws Interrupt...

List排序简单记录

前言简单整理一下List的集合的排序,简单的记录一下,方便自己后续查阅。正文这里介绍一下使用Comparable和Comparator进行排序Comparable在实现的FileInfo实现Comparable,然后实现排序compareTo()即可。具体如下public class ...

《MySQL基础教程》笔记6

前言主要是记录一下update和delete命令的使用。根据《MySQL基础教程-西泽梦路》学习,简单的做一下笔记。记录于此,方便自己回忆。正文我这以Window版的phpstudy软件验证。需要进入这个目录,才可以使用mysql命令D:\phpstudy_pro\Extensions...