Kotlin基本数据类型

  Kotlin基本数据类型

kotlin的基本数值类型包括Byte,Short,Int,Long,Float,Double等。与java有差别的是字符不属于数值类型,而是一个独立的数据类型。

而内存大小则Byte 8位,Short 16位,Int 32位,Long 64位,Float 32位,Double 64位。与Java基本没有差别。

字面常量

下面是所有类型的字面常量:

  •   十进制:123
  • 长整型以大写的L结尾:123L
  • 16进制以0x开头:0x0F
  • 2进制以0b开头:0b00001011
  • ***注意:kotlin不支持8进制

kotlin同时也支持传统符号表示的浮点数值:

  • Double默认写法:123.5,123.5e10
  • Float使用f或者F后缀:123.5f

可以使用下划线使数字常量更易读:

val oneMillion = 1_000_000
val creditCarNumber = 1234_5678_9012_3456L
val socialSecurityNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = ob11010000_010100_11100

比较两个数字

kotlin中没有基础数据类型,只有封装的数字类型,你每定义的一个变量,kotlin帮你封装了一个对象。这样确保了不会出现空指针。数字类型也一样。所有在比较两个数字的时候,就有比较数据大小和比较两个对象是否相同的区别了。

* === :表示比较对象地址。

*==:表示比较两个值的大小。

类型转换

由于不同的表示方式,较小类型并不是较大类型的子类型,较小的类型不能隐式的转换为较大的类型。这意味着在不进行显示转换的情况我们不能把byte型值赋给一个int变量。

val b: Byte = 1 //ok ,字面值是静态检测的
val i : Int = b //错误

//正确做法

val i :Int = b.toInt()

由此引出的各种数据类型转换方法。

toByte() : Byte

toShort():

toInt():

toLong():

toFloat():

toDouble():

toChar():

但是有些情况下也是可以使用自动类型转换的,前提是可以根据上下文环境推断出正确的数据类型而且数学操作符会做相应的重载。例如:

    val 1 = 1L + 3 //Long + Int =》 Long

位操作符

对于Int和Long类型,还有一系列位操作符可以使用,分别是:

shl(bits)   - 左移位(Java <<)

shr(bits) -右移位(Java >>)

ushr(bits)  -无符号右移位(Java >>>)

and(bits)  -与

or(bits)  -或

xor(bits)  -异或

inv() -反向

字符

和Java不同的是,kotlin 中Char不能和数字操作,Char必须是是单引号‘包含起来的,比如普通字符’0‘,’a‘。

    fun check(c : char) {
          if (c == 1)  { //错误 类型不兼容

}
}

字符字面值用单引号括起来:‘1‘.特殊字符可以用反斜杠转义。

支持以下转义序列:\t,\b,\n,\r,\‘,\",\\和\$。编码其他字符要用Unicode转义序列语法:"\uFF00"。

我们可以显示把字符转换位Int数字:

注意:倒数第二行不能少 - ‘0‘.toInt() 否则打印 51 原因未知。

当需要可空引用时,像数字,字符会被装箱。装箱操作不会保留同一性。

布尔

布尔用Boolean类型表示,它有两个值:true和false。

若需要可空引用会被装箱。

内置的布尔运算有:

|| -短路逻辑或

&& - 短路逻辑与

! - 短路逻辑非

数组

数组用类Array实现,并且还有一个size属性及get和set方法。

由于使用[]重载了get和set方法。所以我们可以通过下标很方便的获取或者设置数组对应位置的值。

数组的创建两种方式:一种是使用函数arrayOf();另外一种是使用工厂函数。如下所示我们分别是两种方式创建了两个数组:

注意:[] 运算符代表调用成员函数get()和set()。

注意:与Java不同的是,kotlin中数组是不型变的。(invariant)。

除此之外还有 ByteArray,ShortArray,IntArray,用来表示各个类型的数组,省去了装箱操作,因此效率更高,其用法同Array一样。

字符串

和Java一样,String是不可变的。方括号[]语法可以很方便的获取字符串中的某个字符,也可以通过for循环来遍历:

kotlin支持三个引号‘‘‘ ‘‘‘括起来的字符串,支持多行字符串比如:

当然也可以通过.trimMargin()删除多余的空白。

字符串模板

字符串可以包含模板表达式,即一些小段代码,会求值并把结果合并到字符串中。模板表达式以美元符($)开头,由一个简单的名字构成:

或者用花括号扩起来的任意表达式:

原生字符串和转义字符串内部都支持模板。如果你需要在原生字符串中表示字面值$字符(它不支持反斜杠转义)。可以使用下列语法:

原文地址:https://www.cnblogs.com/djxf/p/10099126.html

时间: 2024-10-14 02:44:19

Kotlin基本数据类型的相关文章

Kotlin 基础 - 数据类型

一.Boolean 类型 Boolean 值有两个值,分别为 true 或 false.多数情况下,Kotlin 中的 Boolean 相当于 Java 中的基本类型 boolean,只有在必要的情况下才会装箱成为 Java 中的装箱类型 Boolean.这一切都是交由编译器来完成,我们无需关心. var isFirst: Boolean = true var isSecond: Boolean = false 二.Number 类型 var aLong: Long = 123L var aIn

Kotlin入门第三课:数据类型

前文链接: Kotlin学习第一课:从对比Java开始 Kotlin入门第二课:集合操作 初次尝试用Kotlin实现Android项目 Kotlin的数据类型与Java类似,因此这篇文章主要看Kotlin的几点改变(改进). 1.内置数据类型 Double--64位    Float--32位 Long--64位        Int--32位 Short--16位       Byte--8位 Kotlin中字符型不再是基础类型,下面会进行介绍. 1.1 类型名称 类型只有首字母大写1种名称,

买《Kotlin从小白到大牛》专题视频课程,送配套纸质图书

经过一年多时间的呕心沥血,Kotlin立体化图书--<Kotlin从小白到大牛>即将与大家见面了.所谓立体化图书包括:电子图书.视频.课件和服务等内容. <Kotlin从小白到大牛>纸质图书将于9月上旬上市,为了答谢广大学员对智捷课堂以及关老师的支持,现购买51CTO学院视频课程<Kotlin从小白到大牛全集专题> 的学员送一本<Kotlin从小白到大牛>纸质版图书.请于购买课程后10个工作日内申请赠书,过期视为放弃. 注意:苹果支付购买,以及打折活动购买不

Kotlin 数据类型

Kotlin 的常见数据类型: 类型 范围 byte -128~127 short 32767-32768 int -2147483648~2147483647 long 9223372036854775807-9223372036854775808 float 小数点6位 double 小数点后16 string 无 验证代码: fun main(agrs : Array<String>) { var B:Byte= Byte.MAX_VALUE; println("max:&qu

Kotlin操作符重载:把标准操作加入到任何类中(KAD 17)

作者:Antonio Leiva 时间:Mar 21, 2017 原文链接:https://antonioleiva.com/operator-overload-kotlin/ 就像其他每种语言一样,在Kotlin中,已经预定义了一些操作符执行一定的操作. 最典型的是加(+),减(-),乘(*),除(/),而且还有很多. 类似Java这样的一些语言,这些操作符被限制在一些特定的数量类型上,且没有方法让其他类型数据使用这些操作符. 还有在像Scala这样的其他语言中,由于函数名称可接受任何符号,我

建造者模式(Java与Kotlin版)

前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) 抽象工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次尝试用Kotlin实现Android项目 1. 定义 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 2. 结构 Product:产品角色:

Kotlin 介绍

Kotlin (0:00) 大家好,我是 Michael Pardo,今天我要给大家展示一下 Kotlin 这门语言,同时看看他如何让你在 Android 开发的时候更开心,更有效率. Kotlin 是一个基于 JVM 实现的静态语言.Kotlin 是 JetBrains 创造并在持续维护这门语言,对,就是那个创造了 Android Studio 和 IntelliJ 的公司. Kotlin 有几个核心的目标: 简约:帮你减少实现同一个功能的代码量. 易懂:让你的代码更容易阅读,同时易于理解.

工厂方法模式(Java与Kotlin版)

前文推送 设计模式 简单工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次尝试用Kotlin实现Android项目 1. 定义 工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式.在工厂方法模式中,工厂父类负责

抽象工厂模式(Java与Kotlin版)

前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次尝试用Kotlin实现Android项目 1. 定义 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类.抽象工厂模式又称为Kit模式,属于对象创建型模式. 2. 结构 Abs