Kotlin的基本语法

Android  Kotlin  2024年9月11日 pm6:34发布3个月前更新 城堡大人
83 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、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

梁实秋:快乐

天下最快乐的事大概莫过于做皇帝。“首出庶物,万国咸宁”。至不济可以生杀予夺,为所欲为。至于后宫粉黛三千,御膳八珍罗列,更是不在话下。清乾隆皇帝,“称八旬之觞,镌十全之宝”,三下江南,附庸风雅。那副志得意满的神情,真是不能不令人兴起“大丈夫当如是也”的感喟。在穷措大眼里,九五之尊,乐不可支。但是试起...

记录Ubuntu更新命令

前言简单的记录一下Ubuntu更新命令,方便自己查阅。流水账一篇。正文更新系统sudo apt update && sudo apt upgrade -y搜索包apt-cache search package获取包的相关信息apt-cache show packa...

Android的fontScale不随系统设置变化

前言由于Android开发中部分第三方应用字体过小,用户会调整Android系统的字体大小,但由于我们应用是定制化开发的,改变字体也会影响我们应用的字体显示。因此需求:定制化的APP内字体大小不随系统设置变化。正文在Activity中重写如下方法 @Override pr...

萧乾:吆喝

一位二十年代在北京作寓公的英国诗人奥斯伯特. 斯提维尔写过一篇《北京的声与色》,把当时走街串巷的小贩用以招徕顾客而做出的种种音响形容成街头管弦乐队,并还分别列举了哪是管乐、弦乐和打击乐器。他特别喜欢听串街的理发师(“剃头的”) 手里那把钳形铁铉。用铁板从中间一抽,就会呲啦一声发出带点颤巍的金属声响,...

Kotlin的基本语法

前言简单记录一下Kotlin的基本语法。这里只是简单的记录,只是方便自己而已。正文注释注释是为了使代码易于阅读。单行注释单行注释通常是对程序中的某一行代码进行解释,用符号“//”表示//初始化UIinitUI();多行注释多行注释就是注释中的内容可以是多行,以符号“/ ”开...

rc文件规则简介

前言上一篇大致的走了一下init.cpp的流程,其中很重要的一环就是解析.rc文件,在介绍init.rc之前先学习一下rc文件的语法。内容主要来源参考文正文什么是rc文件在进入init.rc之前,我们需要先了解一下.rc文件。rc文件,是用Android Init Language...