Kotlin-数据类型

本文详细介绍了Kotlin的基本数据类型,包括变量声明、数据类型转换、数组操作和字符串处理。此外,还讲解了Kotlin中的容器操作,如List、Set、Map的使用及遍历方式。通过实例展示了如何进行集合的创建、迭代和Map的遍历。对于字符串,文章提到了转换方法和特定的格式化技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.基本数据类型

1.变量声明

基本数据类型有:Int,Long,Float,Double,Boolean,Char,String

        var number1 : Int = 3
        val number2 : Int = 5

val初始化一次后不允许初始化,相当于final,var固定语法格式,没有特殊功能

2.数据类型转化

toInt,toLong,toDouble, toChar,toString

   var number : Int = 3
        val floatNumber = number.toFloat();
        val charNumber = number.toLong();

3.数组

数组类型有IntArray,LongArray,DoubleArray,BooleanArray,CharArray,生成数组的方法有intArrayOf,longArrayOf,doubleArrayOf,booleanArrayOf,charArrayOf

        var numberArray: IntArray = intArrayOf(1, 2, 3, 4)

但是不存在StringArray,因为它是特殊的基本类型,需要通过另一种方式生成

        var stringArray:Array<String> = arrayOf("hello","welcom","world")

这样其它基本类型,也可以通过这样的方式生成

        var charArray:Array<Char> = arrayOf('a','b','c')

数组的长度通过size获取,具体获取某个位置的数据,可以通过后缀[]获取,也可以通过get方法获取

  var charArray:Array<Char> = arrayOf('a','b','c')
        System.out.println(charArray.size)
        System.out.println(charArray[0])
        System.out.println(charArray.get(0))

4.字符串

转化为基本类型方法是toInt,toLong,toDouble,toBoolean,toCharArray,其大部分方法和java都兼容,有少部分区别有,

调用split方法生成都是List集合,而不是数组

   var phone: String = "18165777965"
   val split = phone.split("7");

获取具体位置元素,可通过后缀[]和get方法

        var phone: String = "18165777965"
        System.out.println(phone[2])
        System.out.println(phone.get(3))

字符串格式方法是通过$来实现

 var phone: String = "18165777965"
 var result: String = "电话号码是$phone"
 var length: String = "电话号码长度是${phone.length}"

$是特殊符号,如果要转义,使用“${'***'}来转义里面的特殊元素

 var length: String = "电话号码长度是是${'$'}${phone.length}"

如果只对一个特殊元素转义,可用

var length: String = "电话号码长度是是\$${phone.length}"

二.容器的基本操作

Kotlin独有的容器有:Set,MutableSet,List,MutableList,Map,MutableMap,其中Mutable的容器是可变容器

  val flowers: List<String> = listOf("玫瑰", "月季", "百合")
  var numbers: MutableSet<Int> = mutableSetOf(1, 5, 4, 8)

集合一般有for-in,迭代器,forEach三种迭代方式,其中List多了一种角标迭代方式

val flowers: MutableList<String> = mutableListOf("玫瑰", "月季", "百合")

        //for-in
        for (flower in flowers) {
            System.out.println(flower)
        }

        //迭代器
        val iterator = flowers.iterator();
        while (iterator.hasNext()) {
            val flower = iterator.next();
            System.out.println(flower)
        }

        //forEach
        flowers.forEach{
            System.out.println(it)
        }

        //角标
        for (i in flowers.indices) {
            val flower = flowers[i]
            System.out.println(flower)
        }

创建Map有两种方式,如下


val map1: MutableMap<String, String> =
            mutableMapOf("one" to "1", "two" to "2", "three" to "3", "four" to "4")
 var map2: MutableMap<String, String> =
            mutableMapOf(Pair("one", "1"), Pair("two", "2"), Pair("three", "3"), Pair("four", "4"))

遍历方式有三种,如下

 val map1: MutableMap<String, String> =
            mutableMapOf("one" to "1", "two" to "2", "three" to "3", "four" to "4")
        for (item in map1) {
            System.out.println("item.key = ${item.key}  item.value = ${item.value}")
        }
        val iterator = map1.iterator();
        while (iterator.hasNext()) {
            val item = iterator.next();
            System.out.println("item.key = ${item.key}  item.value = ${item.value}")

        }
        map1.forEach {
            System.out.println("item.key = ${it.key}  item.value = ${it.value}")
        }

 

### 如何在 Android 项目中应用 `kotlin-android`、`kotlin-kapt` 和 `kotlin-parcelize` 插件 #### 使用 `plugins {}` 块的方式 现代 Gradle 构建脚本推荐使用 `plugins {}` 块来声明插件。这种方式更加简洁明了,能够减少配置冲突的可能性。 以下是完整的 `build.gradle` 文件中的插件部分: ```gradle plugins { id 'com.android.application' // 或者 com.android.library 如果是库模块 id 'org.jetbrains.kotlin.android' id 'kotlin-kapt' id 'kotlin-parcelize' } ``` 上述方法适用于大多数场景,并且可以有效避免传统 `apply plugin:` 方式的潜在问题[^1]。 --- #### 调整插件顺序的重要性 如果仍然选择使用传统的 `apply plugin:` 方法,则需要注意插件的应用顺序。某些情况下,特定插件的加载依赖于其他插件已经完成初始化的过程。例如,在引入 `kotlin-android-extensions` 的时候,通常需要先加载 `kotlin-android` 插件[^2]。 以下是一个典型的例子: ```gradle apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' apply plugin: 'kotlin-parcelize' // apply plugin: 'kotlin-android-extensions' (已废弃) ``` 注意:`kotlin-android-extensions` 已被官方标记为弃用,建议改用 Jetpack Compose 或 View Binding 替代其功能[^3]。 --- #### 数据绑定支持 (`kotlin-kapt`) 当涉及到数据绑定(Data Binding)或者 Room 数据库等注解处理器时,必须显式地添加 `kotlin-kapt` 插件并正确配置相关依赖项。这是因为这些工具通过编译期生成代码实现运行时的功能扩展[^5]。 示例配置如下所示: ```gradle dependencies { kapt "androidx.databinding:databinding-compiler:<version>" } plugins { id 'kotlin-kapt' } ``` 其中 `<version>` 应替换为当前项目的 Data Binding 版本号。 --- #### 组件化开发下的特殊需求 对于采用组件化架构的大型项目来说,可能需要动态判断当前模块是否属于应用程序入口点还是普通的库模块。此时可以通过根项目的全局变量控制插件的选择逻辑。 具体实现可参考以下片段: ```groovy if (rootProject.ext.android.isApplication) { apply plugin: 'com.android.application' } else { apply plugin: 'com.android.library' } plugins { id 'org.jetbrains.kotlin.android' id 'kotlin-kapt' id 'kotlin-parcelize' } ``` 此方案允许开发者灵活管理不同类型的子模块,而无需重复定义相同的构建规则。 --- #### 总结 为了确保最佳实践,请优先考虑利用 `plugins {}` 声明所需插件;同时留意各插件之间的兼容性和加载次序关系。针对高级特性如数据绑定或 Parcelize 功能,则务必集成对应的注解处理器支持。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值