【Kotlin 初学者】变量-常量-数据类型

简介: 变量var 关键字val 关键字内置数据类型(常用)Kotlin的引用类型类型推断延迟初始化lateinit使用lateinit关键字添加islnitialized检查惰性初始化by lazy正常执行String 模板自动补全(输出)


变量


var 关键字


       Kotlin 使用 var 关键字定义可变变量(可读可写),类似Java中的一般变量。

       跟 Java 的区别就是 类型的位置从变量名前面挪到变量名后面了。如下图:


语法

微信图片_20220524163046.png


实践


fun main() {
    var str: String = "Hello Kotlin"
    println(str)
    str = "Hello ShuaiCi"
    println(str)
}


 运行结果


"E:\Android\Android StudioO\jre\bin\java.exe"...
Hello Kotlin
Hello ShuaiCi
Process finished with exit code 0


查看Java代码


微信图片_20220524163202.png


 仅赋值一次


fun main() {
    var str: String = "Hello Kotlin"
    println(str)
}


微信图片_20220524163236.png


  黄色提示:大致意思就是你的变量不会修改,可以使用 val 定义为不可变量变量,下面咱们看看


val 关键字


       Kotlin 使用 val 关键字定义不可变变量,只能赋值一次的变量(类似Java中final修饰的变量),不是常量不能混淆呦。


语法


val <变量名> : <类型> = <初始化值>


实践


fun main() {
    val age : Int = 100
    println(age)
}


运行结果


"E:\Android\Android StudioO\jre\bin\java.exe"...
100
Process finished with exit code 0


 查看Java代码


微信图片_20220524163444.png


对不可变量进行再次赋值


       提示:Val cannot be reassigned(Val 不能重新赋值)


微信图片_20220524163849.png


内置数据类型(常用)


类型 描述
String 字符串
Char 单字符
Boolean true/false
Int 整形
Double 小数
List 集合
Set 无重复的元素集合
Map 键值对的集合


Kotlin的引用类型


  • Java有两种数据类型:
  • 引用类型(堆内存)
  • 基本数据类型(栈内存)


  • Kotlin只提供引用类型这一种数据类型,出于更高性能的需要,Kotlin编译器会在Java字节码中修改为基本数据类型


微信图片_20220524164025.png


类型推断


       对于已声明并赋值的变量,它允许你省略类型定义。


微信图片_20220524164109.png


从上图你会发现 String 和 Int 都是灰色的。


提示:显式给定的类型在这里是多余的



移除掉显示的类型声明


微信图片_20220524164205.png


实践


fun main() {
    //类型推断
    var type = "Hello Type"//自动推断为String
    println(type)
    var a = 10      //自动推断为Int
    println(a)
    var b = true    //自动推断为Boolean
    println(b)
    var d :String   //如果不在声明时初始化则必须提供变量类型
    d = "HHH"       //明确赋值
    println(d)
}


运行结果


"E:\Android\Android StudioO\jre\bin\java.exe"...
Hello Type
10
true
HHH
Process finished with exit code 0


查看Java代码


微信图片_20220524164322.png


编译时常量

       编译时常量只能在函数之外定义,为什么?


       因为编译时常量必须在编译时赋值,而函数都是在运行时才调用函数内的变量也是在运行时赋值


       编译时常量只能是常见的基本数据类型:String、 Int、Double、Float、Long.Short、Byte、Char、Boolean。


       类似Java的public static final。


      实践,如下:


const val MAX = 65535
fun main() {
    println(MAX)
}


  查看Java代码,如下:


微信图片_20220524164527.png


"const"不适用于"局部变量",如下:


微信图片_20220524164549.png


延迟初始化lateinit


  • 使用lateinit关键字相当于做了一个约定:在用它之前负责初始化
  • 执行islnitialized检查lateinit变量是否完成初始化

使用lateinit关键字


1.class UserInfo4() {
    lateinit var name:String //属性延迟初始化
    fun addName(_name:String){
        name = _name
    }
    fun readName(){
        //直接使用如果name未做初始化会报错。
        println(name)
    }
}
fun main() {
    var  userInfo4 = UserInfo4()
    userInfo4.readName()
}


微信图片_20220524164631.png


添加islnitialized检查


       执行islnitialized检查lateinit变量是否完成初始化,未完成初始化则不执行打印。


微信图片_20220524164658.png


惰性初始化by lazy


       你可以暂时不初始化某个变量,直到首次使用它再进行初始化,这个叫作惰性初始化


class UserInfo4() {
    ...
    val age by lazy { ageAdd() }//惰性初始化
    //如果不调用age, ageAdd()函数永远不执行
    private fun ageAdd(): Int {
        return 18
    }
}
fun main() {
    var userInfo4 = UserInfo4()
    userInfo4.addName("Hello Kotlin")
    userInfo4.readName()
    println("------")
    println(userInfo4.age)
}


微信图片_20220524165014.png


正常执行


微信图片_20220524165033.png


String 模板


  • 模板支持在字符串的引号内放入变量值
  • 字符串内嵌表达式。



1.fun main() {
    val name: String = "Shuaici"
    val age: Int = 18
    val money: Float = 1.25f
    //引号内放入变量值
    println("$name 今年 $age ,身上带了 $money 巨款")
    val isMan: Boolean = true
    //添加表达式
    println("$name 是个 ${if (isMan) "纯爷们" else "萌妹子"}")
}


   运行结果


1."E:\Android\Android StudioO\jre\bin\java.exe"...
Shuaici 今年 18 ,身上带了 1.25 巨款
Shuaici 是个 纯爷们
Process finished with exit code 0


自动补全(输出)


       变量名.sout


微信图片_20220524165144.gif


看完了就上手练练,只看短时间能记住,时间长不用就忘记了,还要再看一遍(欢迎再来),还不如自己上手练一下。

相关文章
|
12月前
|
Java Kotlin
开心档-软件开发入门之​Kotlin 基本数据类型​
开心档-软件开发入门之​Kotlin 基本数据类型​
23 0
|
4月前
|
存储 Kotlin 容器
Kotlin 变量详解:声明、赋值与最佳实践指南
**Kotlin 变量简介** Kotlin 中使用 `var` 定义可变变量,`val` 定义常量。类型可自动推断,如 `var name = &quot;John&quot;`(String)和 `val birthyear = 1975`(Int)。`val` 一旦赋值不可变,`var` 则可变。变量名遵循驼峰命名法,且不能为保留字。`println()` 用于打印变量值。可使用 + 连接字符串或执行数学运算。
65 0
|
4月前
|
安全 开发者 Kotlin
Kotlin变量
Kotlin变量
186 0
|
4月前
|
存储 安全 Java
Kotlin 数据类型详解:数字、字符、布尔值与类型转换指南
Kotlin中变量类型由值决定,如Int、Double、Char、Boolean、String。通常可省略类型声明,但有时需指定。数字类型分整数(Byte, Short, Int, Long)和浮点(Float, Double),默认整数为Int,浮点为Double。布尔值是true或false,Char用单引号,字符串用双引号。数组和类型转换将在后续讨论,转换需用特定函数。
43 0
|
Java 编译器 Kotlin
Kotlin 中变量,类型,表达式,函数详解
Kotlin 中变量,类型,表达式,函数详解
90 0
|
12月前
|
Java iOS开发 Kotlin
开心档-软件开发入门之​Kotlin 基本数据类型​
开心档-软件开发入门之​Kotlin 基本数据类型​
|
安全 Java 编译器
02. Kotlin 变量、常量和类型
02. Kotlin 变量、常量和类型
123 0
|
Java Kotlin
开心档-软件开发入门之​Kotlin 基本数据类型
前言 本章将会讲解 Kotlin 基本数据类型 目录 Kotlin 基本数据类型 字面常量 比较两个数字 类型转换 位操作符 字符 布尔 数组 字符串 字符串模板
|
Java Kotlin
开心档-Kotlin 基本数据类型
Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于 Java 的是,字符不属于数值类型,是一个独立的数据类型。
开心档-Kotlin 基本数据类型
|
存储 Java 编译器
带你踏入kotlin大门(二)|基本功_变量篇
本篇正式开启 kotlin 的学习历程,带你正式踏入 kotlin 大门。
带你踏入kotlin大门(二)|基本功_变量篇
下一篇
无影云桌面