IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Kotlin 基本语法记录 -> 正文阅读

[移动开发]Kotlin 基本语法记录

1 数据格式转换

1.1? 16 进制 定义和显示

val hexBytes = 0xFF_EC_DE_5E
    print(hexBytes.toString(16).uppercase())

FFECDE5E
Process finished with exit code 0

1.2 将字节转为16进制

字符串如何拼接呢?

我们使用%02X打印两个位置(02)的十六进制(X)值,并将其存储在字符串st中。

 val bytes = byteArrayOf(12, 2, 15, 11)

    for (b in bytes) {
        var st:String=""
         st =   String.format("%02X", b)
        println(st)
    }
  val st1="1a"
    println(st1.toByte(16))
    println(st1.toByte(16).toString(16))

Result:

26(10)
1a(16)

1.3 16进制与char 变量转换

? 以下方法可以将? 字节变量(10进制的)转为16进制数据。如果接受到16进制字符串,可以反向拆分,比较麻烦 需要charbyte ,一个字节对应2个数据。

fun bytesToHex(bytes: ByteArray): String {
    val hexArray = "0123456789ABCDEF".toCharArray()
    val hexChars = CharArray(bytes.size * 2)
    for (j in bytes.indices) {
        val v = (bytes[j] and 0xFF.toByte()).toInt()
//println(v.toString(16))
        hexChars[j * 2] = hexArray[v ushr 4] // high 4 bit
       // println(hexChars[j * 2] .toString())
        hexChars[j * 2 + 1] = hexArray[v and 0x0F] // low 4bit
       // println(hexChars[j * 2+1] .toString())
    }
    return String(hexChars)
}
val bytes = byteArrayOf(12, 2, 15, 11)
???????val s = bytesToHex(bytes)
println(s)

0C020F0B

2 记录

2.1 Data 数据类型

为了确保生成的代码的一致性以及有意义的行为,数据类必须满足以下要求:

  • 主构造函数需要至少有一个参数;
  • 主构造函数的所有参数需要标记为?val?或?var
data class Person(val name: String) {
    var age: Int = 0
}
 val person1 = Person("John")
 println(person1)

结果是 Person("John")

数据类型打印的竟然是类名及其参数。。。Ref

2.2 类中可以引用 类名来申明

为啥类中可以用父类作为变量类型来申明?? 神奇。。

要使??个属性,只要?名称引?它即可,其目的是为了调用类中的各种属性。

data class Counter(val dayIndex: Int) {
    operator fun plus(increment: Int): Counter {  // 竟然类型为Counter?
        return Counter(dayIndex + increment)
    }
}


  val count1 =Counter(2)

    print(count1.plus(1))

Counter(dayIndex=3)

2.3 求余和取整

? ?这一块和其他语言一样。

  val a=5
    val b=2
    println(a / b )//取整
    println(a % b) //求余数

2
1

2.4 map

?这是 格式转换? 如何增加新值?

  var map = mapOf("a" to 1, "b" to 2, "c" to 3)
    //map("key")=4  // 出错
    println(map["a"])
    println(map["key"]) // 这里又不出错, why

1
null

2.5 数据交换

fun MutableList<Int>.swap(index1: Int, index2: Int) {
    val tmp = this[index1] // “this”对应该列表
    this[index1] = this[index2]
    this[index2] = tmp
}

  val list = mutableListOf(1, 2, 3)
    list.swap(0, 1) // “swap()”内部的“this”会保存“list”的值
    println(list)

[2, 1, 3]

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:21:10  更:2021-08-09 10:23:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 2:02:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码