Kotlin编程基础数据类型示例详解

目录
  • 本文总览
  • 1.数值类型
  • 2.布尔型
  • 3.字符串
    • 3.1 字符串字面值
    • 3.2 字符串模板
  • 4.数组
    • 4.1 普通数组
    • 4.2 原⽣类型数组
  • 5.类型检测和类型转换
    • 5.1 智能转换
    • 5.2 is 与 !is 操作符
    • 5.3 转换操作符: as 与 as?
  • 总结

本文总览

上一篇学习了Kotlin基础语法知识,本篇开始会深入探讨一下Kotlin各个基础语法点。首先来熟悉Kotlin的数据类型和类型转换版块。

1.数值类型

在Kotlin中提供了数值类型:

  • 整数类型:Byte,Short,Int,Long 四种
  • 浮点类型:Float,Double

下面表格列出了所有数值类型的位宽度:

类型 位宽度
Double 64
Float 32
Long 64
Int 32
Short 16
Byte 8

数值类型都⽀持转换:

toByte(): Byte

toShort(): Short

toInt(): Int

toLong(): Long

toFloat(): Float

toDouble(): Double

toChar(): Char

2.布尔型

  • 布尔用 Boolean 类型表示,有两个值:true 和 false
val myTrue: Boolean = true
val myFalse: Boolean = false
val boolNull: Boolean? = null
  • 内置布尔运算有:
|| – 短路逻辑或
&& – 短路逻辑与
 ! - 逻辑非

3.字符串

  • Kotlin 中字符串⽤ String 类型表示;
  • 和 Java 一样,String 是不可变的;
  • 元素:字符可以使⽤索引运算符访问: s[i]

3.1 字符串字面值

Kotlin 有两种类型的字符串字⾯值:

  • 转义字符串可以包含转义字符
val s = "Hello, world!\n"
  • 原始字符串可以包含换⾏以及任意⽂本
val text = """
    for (c in "foo")
        print(c)
"""
// text可以原封不变打印出来,包括换行符格式

3.2 字符串模板

模板表达式以美元符( $ )开头,要么由⼀个的名称构成:

val i = 10
println("i = $i") // 输出“i = 10”
// 表达式使用 {} 括起来
val s = "abc"
println("$s.length is ${s.length}") // 输出“abc.length is 3”

4.数组

4.1 普通数组

在 Kotlin 中使⽤ Array 类来表示, 使⽤函数 arrayOf() 来创建⼀个数组并传递元素值给它。

// 创建⼀个 Array 初始化为 ["0", "1", "4", "9", "16"]
val asc = Array(5) { i -> (i * i).toString() }

4.2 原⽣类型数组

⽆装箱开销的类组成原生类型数组:ByteArray 、 ShortArray 、 IntArray等,它们与 Array 并没有继承关系,但都有同样的方法属性集。

// ⼤⼩为 5、值为 [0, 0, 0, 0, 0] 的整型数组
val arr = IntArray(5)

5.类型检测和类型转换

5.1 智能转换

在 Kotlin 中,⼤多数场景都不需要使⽤显式转换操作符,因为编译器会很智能地进行转换

if (x !is String) return
print(x.length)  // x ⾃动转换为字符串

智能转换⽤于 when 表达式:

when (x) {
    is Int -> print(x + 1)
    is String -> print(x.length + 1)
    is IntArray -> print(x.sum())
}

5.2 is 与 !is 操作符

使⽤ is 操作符或其否定形式 !is 在运⾏时检测对象是否符合给定类型

if (obj is String) {
    // 代码处理
}
if (obj !is String) {
    // 代码处理
}

5.3 转换操作符: as 与 as?

as 是不安全 转换操作符,如果 一个表达式的转换是不成立的,会抛出异常

val x: String = y as String // 会存在 y 不能转换成 String的情况, 则会报错

值得注意: null 不能转换为 String 因该类型不是可空的。 如果 y 为空,上⾯的代码 会抛出⼀个异常。 为了让这样的代码⽤于可空值,请在类型转换的右侧使⽤可空类型:

val x: String? = y as String? // 这样是可以的

为避免异常,可以使⽤安全转换操作符 as? ,它可以在失败时返回 null :

val x: String? = y as? String // 这是一种 安全 转换操作符

总结

本篇主要熟悉Kotlin的基本数据类型和类型转换的知识点,掌握了这些基本点,为后面函数,接口,类的成员变量声明等奠定基础。

为方便理解知识点,可以类比 Java ,通过对比印象会更深,记得更牢固

以上就是Kotlin编程基础数据类型示例详解的详细内容,更多关于Kotlin数据类型的资料请关注我们其它相关文章!

(0)

相关推荐

  • kotlin实战教程之lambda编程

    前言 ambda即lambda表达式,简称lambda.本质上是可以传递给其它函数的一小段代码.有了lambda,可以轻松地把通用代码结构抽取成库函数.lambda最常见的用途是和集合一起配合.kotlin甚至还拥有带接收者的lambda,这是一种特殊的lambda. 本文是对<<kotlin实战>>中 "lambda编程"一章的总结,主要记录了一些我认为比较重要的点 在kotlin中常见的lambda用法主要由以下几种: 与集合一起使用 lambda可以与任意

  • Kotlin教程之基本数据类型

    Kotlin教程之基本数据类型的学习 基本类型 我们知道java的基本类型分为基本数据类型: int 普通整型 float 浮点型 char 字符型 short 短整型 byte 字节型 long 长整型 double 双精度 boolean 布尔型 和引用数据类型: class Type 类类型 interface Type 接口类型 array Type 数组类型 null Type 空类型 在 Kotlin 中,所有变量的成员方法和属性都是一个对象.一些类型是内建的,因为它们的实现是优化过

  • Kotlin基础教程之数据类型

    Kotlin基础教程之数据类型 一切都是对象. 在Kotlin中一切都是对象.Kotlin有一些基本类型Boolean,Byte,Shot,Int,Long,Float,Double 在Kotlin中没有原始类型,以上这些类型都是对象,比如 运行结果如下 Kotlin支持16进制字面值,二进制字面值和科学记数法,官方文档中没有提到8进制 所有基本的几个数据类型不会进行显式类型转换,这一点尤为重要!那么如何进行转换呢?如下: 可以使用toLong,toInt,toShort,toChar等函数进行

  • Kotlin基本数据类型详解

    目录 1. kotlin 数值型 2. kotlin 布尔型 3. kotlin 字符型 4. kotlin 字符串 5. kotlin 可空类型 6. kotlin 类型相互转换 7. kotlin 二进制.十六进制 1. kotlin 数值型 fun main() { // 整数型 val a: Byte = 1 // 8位 val b: Short = 2 // 16位 val c: Int = 3 // 32 val c2 = 3 // 默认整型 Int val d: Long = 4

  • Kotlin编程循环控制示例详解

    目录 本文总览 1. While循环 2. For循环 3. break和continue 3.1 break语句 3.2 continue语句 总结 本文总览 本篇来学习Kotlin循环结构的知识 1. While循环 while循环用于重复迭代代码块,只要给定条件为 true就会执行一次循环代码块.若条件为 false,则直接跳过循环代码块执行后面代码. while (x > 0) { x-- } // 当条件 x>0 成立,x 就会减一 do-while循环 与 while循环相类似,也

  • Kotlin编程条件控制示例详解

    目录 本文总览 1. When 表达式 2. If 表达式 总结 本文总览 本篇来看看 Kotlin的条件控制,这一节知识点 建议与Java中的条件结构类比,会很好理解并记住. 1. When 表达式 在 Kotlin 用 when 来定义多个分支的条件表达式.Kotlin中这个语法与 java 中的 switch 语句非常类似.代码块的执行就是将参数与所有的分⽀条件顺序⽐较,直到满⾜某个分⽀条件:(示例 ) when (x) { 1 -> print("x == 1") 2 -

  • Kotlin编程基础数据类型示例详解

    目录 本文总览 1.数值类型 2.布尔型 3.字符串 3.1 字符串字面值 3.2 字符串模板 4.数组 4.1 普通数组 4.2 原⽣类型数组 5.类型检测和类型转换 5.1 智能转换 5.2 is 与 !is 操作符 5.3 转换操作符: as 与 as? 总结 本文总览 上一篇学习了Kotlin基础语法知识,本篇开始会深入探讨一下Kotlin各个基础语法点.首先来熟悉Kotlin的数据类型和类型转换版块. 1.数值类型 在Kotlin中提供了数值类型: 整数类型:Byte,Short,In

  • Go语言基础反射示例详解

    目录 概述 语法 一.基本操作 二.修改目标对象 三.动态调用方法 总结 示例 概述 在程序运行期对程序动态的进行访问和修改 reflect godoc: https://golang.org/pkg/reflect/ reflect包有两个数据类型: Type:数据类型 [reflect.TypeOf():是获取Type的方法] Value:值的类型[reflect.ValueOf():是获取Value的方法] 语法 一.基本操作 获取变量类型 func TypeOf(i interface{

  • Go语言并发编程基础上下文概念详解

    目录 前言 1 Go 中的 Context 2 Context 接口 3 Context Tree 4 创建上下文 4.1 上下文创建函数 4.2 Context 使用规范 4.3 Context 使用场景 5 总结 前言 相信大家以前在做阅读理解的时候,一定有从老师那里学一个技巧或者从参考答案看个:结合上下文.根据上下文我们能够找到有助于解题的相关信息,也能更加了解段落的思想. 在开发过程中,也有这个上下文(Context)的概念,而且上下文也必不可少,缺少上下文,就不能获取完整的程序信息.那

  • 适合面向ChatGPT编程的架构示例详解

    目录 新的需求 领域知识 架构设计 管道架构 分层架构 类分层神经网络的架构 总结一下 新的需求 我们前面爬虫的需求呢,有些平台说因为引起争议,所以不让发,好吧,那我们换个需求,本来那个例子也不好扩展了.最近AI画图也是比较火的,那么我们来试试做个程序帮我们生成AI画图的prompt. 首先讲一下AI话题的prompt的关键要素,大部分的AI画图都是有一个个由逗号分割的关键字,也叫subject,类似下面这样: a cute cat, smile, running, look_at_viewer

  • Python面向对象编程repr方法示例详解

    目录 为什么要讲 __repr__ 重写 __repr__ 方法 str() 和 repr() 的区别 为什么要讲 __repr__ 在 Python 中,直接 print 一个实例对象,默认是输出这个对象由哪个类创建的对象,以及在内存中的地址(十六进制表示) 假设在开发调试过程中,希望使用 print 实例对象时,输出自定义内容,就可以用 __repr__ 方法了 或者通过 repr() 调用对象也会返回 __repr__ 方法返回的值 是不是似曾相识....没错..和 __str__ 一样的

  • 人工智能学习Pytorch张量数据类型示例详解

    目录 1.python 和 pytorch的数据类型区别 2.张量 ①一维张量 ②二维张量 ③3维张量 ④4维张量 1.python 和 pytorch的数据类型区别 在PyTorch中无法展示字符串,因此表达字符串,需要将其转换成编码的类型,比如one_hot,word2vec等. 2.张量 在python中,会有标量,向量,矩阵等的区分.但在PyTorch中,这些统称为张量tensor,只是维度不同而已. 标量就是0维张量,只有一个数字,没有维度. 向量就是1维张量,是有顺序的数字,但没有"

  • vue实例成员 插值表达式 过滤器基础教程示例详解

    目录 一. 什么是Vue 二.为什么学Vue 三.如何使用Vue 下载安装? 插值表达式 四.vue特点 1.虚拟DOM 2.数据的双向绑定 3.单页面应用 4.数据驱动 五.Vue实例 六.实例成员 - 挂载点 | el - 自定义插值表达式括号| delimiters - 数据 | data - 过滤器 | filters - 方法 | methods - js对象(即字典)补充 - 插值表达式转义 | delimters - 计算属性 | computed - 监听属性 | watch 一

  • Android开发Kotlin实现圆弧计步器示例详解

    目录 效果图 定义控件的样式 自定义StepView 绘制文本坐标 Android获取中线到基线距离 效果图 定义控件的样式 看完效果后,我们先定义控件的样式 <!-- 自定义View的名字 StepView --> <!-- name 属性名称 format 格式 string 文字 color 颜色 dimension 字体大小 integer 数字 reference 资源或者颜色 --> <declare-styleable name="StepView&q

  • Kotlin 标准函数和静态方法示例详解

    目录 标准函数 with run Apply 定义静态方法 注解 顶层方法 标准函数 with with 的作用是可以在连续调用同一对象的多个方法时让代码变得更加精简 val result = with(obj){ //这里是obj的上下文 "value" //with 函数的返回值 } 看个例子,例如有一个水果列表,现在我们想吃完所有水果,并将结果打印出来 val list = listOf("Apple","Banana","Ora

随机推荐