Kotlin数据类型(一:数据类型)

简介: 一、Boolean/** * Boolean类型有两种类型的 * true * flase */val a: Boolean = trueval b: Boolean = false二、Number数据类型package net.

一、Boolean

/**
 * Boolean类型有两种类型的
 * true
 * flase
 */

val a: Boolean = true
val b: Boolean = false

二、Number数据类型

package net.println.kotlin

/**
 * @author:wangdong
 * @description:
 */

/**
 * Number类型
 * 主要包括浮点型和整型
 */

/**
 * 浮点型:
 * Double 64位
 * Float 32位
 */

/**
 * 整型:
 * Long 64位
 * Int 32位
 * Short 16
 */

/**
 * 字节:
 * Byte 8位
 */

/**Int*/
val aInt: Int = 8
val anotherInt: Int = 0xFF // 16进制 255
val c: Int = 0b00000011 //二进制 3
val maxInt: Int = Int.MAX_VALUE   //最大整型值
val minInt: Int = Int.MIN_VALUE //最小整型值

/**Long*/
val aLong: Long = 2342424242331
val anotherLong: Long = 123
val maxLong: Long = Long.MAX_VALUE //最大
val minLong: Long = Long.MIN_VALUE //最小

/**单精度Float*/
val aFloat: Float = 2.0F
val bFloat: Float = 1E3F
val maxFloat: Float = Float.MAX_VALUE //最大
val minFloat: Float = -Float.MAX_VALUE //最小
val posiFloat: Float = Float.POSITIVE_INFINITY //正无穷
val negaFloat: Float = Float.NEGATIVE_INFINITY //负无穷

/**双精度Double*/
val aDouble: Double = 3.0
val anotherDouble: Double = 3.1323423423
val maxDouble: Double = Double.MAX_VALUE
val minDouble: Double = -Double.MAX_VALUE

/**short*/
val aShort: Short = 321
val maxShort: Short = Short.MAX_VALUE
val minShort: Short = Short.MIN_VALUE

/**byte 字节 -128 到 127*/
val aByte: Byte = 127
val maxByte: Byte = Byte.MAX_VALUE
val minByte: Byte = Byte.MIN_VALUE

fun main(args: Array<String>) {
    //Int
    println(anotherInt)
    println(c)
    println(maxInt)
    println(Math.pow(2.0, 31.0) - 1)
    println(minInt)
    println(- Math.pow(2.0, 31.0))

    //Long
    println(123L)
    println(aLong)
    println(anotherLong)
    println(maxLong)
    println(Math.pow(2.0, 63.0) - 1)
    println(minLong)
    println(- Math.pow(2.0, 63.0))

    //Float浮点型。不精确,写与钱相关的千万别用
    println(aFloat)
    println(bFloat)
    println(maxFloat)
    println(minFloat)
    println(posiFloat)
    println(negaFloat)
    println(0.0F/0.0F)  //0除以0在数学上是不允许的,这里输出结果是:NaN
    println(0.0F/0.0F == Float.NaN) //输出的false,所以不要用0/0去和任何number类型的去判断是否相等,肯定是不相等的。Float.NaN不是数

    //Double
    println(aDouble)
    println(anotherDouble)
    println(maxDouble)
    println(minDouble)

    //Short
    println(aShort)
    println(maxShort)
    println(minShort)

    //Byte
    println(aByte)
    println(maxByte)
    println(minByte)

}

三、Char字符

package net.println.kotlin

/**
 * @author:wangdong
 * @description:
 */

/**单个的字符是char*/
val aChar: Char = '0'
val bChar: Char = '1'
val cChar: Char = '\u000f'  //只是一个字符,根本看不到
val dChar: Char = '\n'  //换行符、回车
val eChar:Char = '\t'  //制表符
val fChar:Char = '\b'  //光标后退一个字符
val gChar:Char = '\r'  //光标回到首行
val hChar:Char = '\''  //单引号
val iChar:Char = '\"'  //双引号
val jChar:Char = '\\'  //反斜杆
val kChar:Char = '\$'  //美元符号

fun main(args: Array<String>) {
    println(aChar)
    println(bChar)
    println(cChar)
    println(dChar)
    println(eChar)
    println(fChar)
    println(gChar)
    println(hChar)
    println(iChar)
    println(jChar)
    println(kChar)

}

四、String字符串类型和字符串的比较

package net.println.kotlin

/**
 * @author:wangdong
 * @description:
 */
val aString: String = "HelloWorld"
//将一个字符拼装成一个字符串
val fromChars: String = String(charArrayOf('H','e','l','l','o','W','o','r','l','d'))

//比较一下字符串
fun main(args: Array<String>) {
    //下面这两个是完全等价的,比较值类型是否相等
    println(aString.equals(fromChars))  //true
    println(aString == fromChars)       //true

    //比较引用地址是否相同,对象是否是同一个,很明显两个对象是不同的
    println(aString === fromChars)    //false

    //字符串连接输出
    println("接下来的字符串连接" + aString)  //接下来的字符串连接HelloWorld

    //如果操作的是加减乘除的算法
    val a: Int = 3
    val b: Int = 4
    //按照java的写法,是不是很累
    println("" + a + "+" + b + "=" + (a+b)) //3+4=7
    //看一下Kotlin
    println("$a + $b = ${a+b}") //3 + 4 = 7

    //Hello "wangdong"  该怎么写
    //val sayHello: String = "hello "wangdong""  会报错
    val sayHello: String = "hello \"wangdong\""   //需要转义
    println(sayHello)

    //$1000,需要得两个$
    val salary: Int = 1000
    println("$$salary")
    println("\$salary")

    var rawString: String = """
        \t
        \n
        \\\\$$salary
        """
    println(rawString)
    println(rawString.length) //字符串的长度 49
}
目录
相关文章
|
存储 Java Kotlin
Kotlin学习日志(二)数据类型(下)
Kotlin学习日志(二)数据类型(下)
180 0
Kotlin学习日志(二)数据类型(下)
|
Java Kotlin
Kotlin学习日志(二)数据类型(上)
Kotlin学习日志(二)数据类型(上)
Kotlin学习日志(二)数据类型(上)
|
Java 编译器 Kotlin
【Kotlin 初学者】变量-常量-数据类型
变量 var 关键字 val 关键字 内置数据类型(常用) Kotlin的引用类型 类型推断 延迟初始化lateinit 使用lateinit关键字 添加islnitialized检查 惰性初始化by lazy 正常执行 String 模板 自动补全(输出)
157 0
【Kotlin 初学者】变量-常量-数据类型
|
Java Kotlin
Kotlin数据类型(二:装箱和拆箱)
蛮多人很疑惑,在Kotlin中,数据类型的装箱和拆箱怎么整 一、先看下Java中的装箱和拆箱 例如: /** * @author:wangdong * @description: */ public class ...
1070 0
|
Java Kotlin 编译器
Kotlin数据类型(三:基础数据类型转换)
一、不可隐式转换 在Java中从小到大,可以隐式转换,数据类型将自动提升。下面以int为例 这么写是ok的 int a = 2312; long b = a; 那么在Kotlin中 //隐式转换,编译器会报...
1205 0
|
存储 Java
《Kotlin极简教程》第三章 Kotlin基本数据类型
正式上架:《Kotlin极简教程》Official on shelves: Kotlin Programming minimalist tutorial 京东JD:https://item.jd.com/12181725.html 天猫Tmall:https://detail.tmall.com/item.htm?id=558540170670 在 Kotlin 中,所有东西都是对象:数字、字符、布尔和数组。
943 0
|
1天前
|
移动开发 API Android开发
构建高效Android应用:Kotlin协程的实践指南
【5月更文挑战第11天】 在移动开发领域,性能优化和资源管理是至关重要的。特别地,对于Android开发者来说,合理利用Kotlin协程可以极大地改善应用的响应性和稳定性。本文将深入探讨Kotlin协程在Android中的实际应用,包括它们如何简化异步编程模型、提高UI线程的响应性,以及减少内存消耗。我们将通过具体案例分析,了解如何在实际项目中有效地使用协程,从而帮助开发者构建更加高效的Android应用程序。
|
1天前
|
移动开发 数据处理 Android开发
构建高效Android应用:Kotlin协程的实践与优化策略
【5月更文挑战第14天】在移动开发领域,性能优化和资源管理是提升用户体验的关键因素之一。随着Kotlin语言的普及,其异步编程解决方案——协程,已经成为Android开发者手中的强大工具。本文将深入探讨Kotlin协程在Android应用中的实践方法,分析其在处理异步任务时带来的优势,并提出一系列优化策略,帮助开发者构建更加高效、响应迅速的Android应用。通过具体案例分析和性能对比,我们将展示如何充分利用协程来简化代码结构,提高应用性能,并确保用户界面的流畅性。
|
1天前
|
移动开发 数据库 Android开发
构建高效Android应用:探究Kotlin协程的优势与实践
【5月更文挑战第14天】在移动开发领域,性能优化和流畅的用户体验始终是开发者追求的目标。随着Kotlin语言的兴起,其提供的协程特性为Android应用带来了革新性的异步编程解决方案。本文将深入探讨Kotlin协程的核心优势,并结合实际案例分析如何在Android应用中有效地利用协程来提升性能和响应性,同时保证代码的简洁性和可维护性。
|
1天前
|
移动开发 Android开发 开发者
构建高效Android应用:探究Kotlin协程的优化实践
【5月更文挑战第13天】 在移动开发领域,Android平台的流畅体验至关重要。随着Kotlin语言的普及,协程作为其核心特性之一,为异步编程提供了简洁且高效的解决方案。本文将深入探讨Kotlin协程在Android应用中的优化使用,从基本概念到实际案例分析,旨在帮助开发者构建更加响应迅速、性能卓越的应用。我们将通过对比传统线程与协程的差异,展示如何利用协程简化代码结构,并通过优化实践减少资源消耗,提升用户体验。