Kotlin语法基础
文章目录
前言 : Java语言与Kotlin语言有相似之处, 但也有很多不同之前, 本文主要关于Kotlin一些基础语法进行展开, 有Java经验的小伙伴可以看看有哪些不同之处.
以下面这个代码为例:
package com.example.mykotlincode
class Hello(val name:String) {
fun halo(){
println("Hello, $name")
}
}
fun main(args:Array<String>){
Hello("World").halo()
//println()
}
-
可以看出Kotlin 文件以
.kt
为后缀 -
代码文件的开头一般为包(package)的声明
-
导入包的关键字
import
-
Kotlin每一行代码的结尾是不用加分号的,当然你加分号也不会报错, 但那是 Java 的写法,Kotlin的代码不需要分号
-
代码注释
-
// 单行注释 /* 块注释 */
-
变量
Kotlin中定义一个变量,只允许在变量前声明两种关键字:
val
和var
,两种变量都可以没有初始化值,但在引用前必须赋初值
-
val
(全称value) : 用来声明一个不可变的变量,即一旦赋初始值就不可再二次赋值 -
var
(全称variable) : 用来声明一个可变的变量, 即可多次进行赋值 -
变量的类型声明放在变量名后, 比如声明一个整型变量 :
var a:Int =1
fun main(){
val num1:Int = 1
var num2:Int = 2
var sum:Int = num1 + num2
println("总和为$sum")
}
永远优先使用val来声明一个变量,而当val没有办法满足你的需求时再改为使用var。这也是为了安全性, 避免了不经意间修改了某个变量的值, 导致未知的安全隐患。
NULL检查机制
Kotlin的空安全设计对于声明可为空的参数,在使用时要进行空判断处理
- 字段后加
!!
: 抛出空异常 - 字段后加
?
: 返回值为null
对象数据类型
Kotlin相比Java来说, 抛弃了基本的数据类型,全部使用对象数据类型, 即数据类型的首字母要大写。Kotlin 中没有基础数据类型,只有封装的数字类型,每定义的一个变量,其实 Kotlin 帮你封装了一个对象,这样可以保证不会出现空指针。
对象数据类型 | 说明 | 位宽度 |
---|---|---|
Int | 整型 | 32bit |
Long | 长整型 | 64bit |
Short | 短整型 | 16bit |
Float | 单精度浮点型 | 32bit |
Double | 双精度浮点型 | 64bit |
Boolean | 布尔型 | – |
Char | 字符型 | 16bit |
Byte | 字节型 | 8bit |
String | 字符串类型 | – |
-
Kotlin中
===
表示比较对象的地址,==
表示比较两个值的大小是否相等val a:Int = 333 val c1:Int? = a val c2:Int? = a println(c1===c2) //对象不同 println(c1==c2) //值相同
类型转换
由于不同的表示方式,较小的数据类型并不是较大数据类型的子类型,较小的数据类型不能隐式转换为较大的数据类型。 这意味着在不进行显式转换的情况下我们不能把 Byte 型值赋给一个 Int 变量
toByte()
: 转换为Byte类型toShort()
: 转换为Short类型toInt()
: 转换为Int类型toLong()
:转换为Long类型toFloat()
: 转换为Float类型toDouble()
: 转换为Double类型toChar()
: 转换为Char类型toString()
: 转换为字符串
val b:Byte= 1
//val n:Int = b //错误的做法
val n:Int = b.toInt()
val c = b.toString()
字符和字符串
-
字符 (Char): 单个字符组成, 字符用单引号
'
引起来- 比如: ‘a’, ‘1’ 等
- Kotlin中的字符(Char)不能直接和数字进行操作,
-
字符串(String): 由单个或多个字符组成,字符串用双引号
"
引起来-
比如 : “hello world”,“H” 等
-
Kotlin 支持三个引号
"""
扩起来的字符串,支持多行字符串 -
和 Java 一样,String 是不可变的。方括号
[]
语法可以很方便的获取字符串中的某个字符,也可以通过 for 循环来遍历 -
字符串内嵌表达式 :
${}
,其中花括号内可以放变量或者变量方法的返回值, 它可以直接放在字符串里面, 将变量的值输出;只有一个变量名或者变量值时可以省略{}
-
Kotlin支持用
+
来做字符串的拼接(但不建议)val a = 1; val b = "变量a的值为$a" println("输出
-