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

2023-10-26

一、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
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kotlin数据类型(一:数据类型) 的相关文章

随机推荐

  • 如何防止mq的消息丢失

    分为两种情况 1 主要在消费方 当消息从mq传到消费者时 消费者可能消费消息失败 这时mq中的消息已经自动删除了 导致消息的丢失 需要使用ack机制来保证消息不会丢失 当消费者从mq中拿到消息时 这个消息在mq中不删除 而是消费者对消息进行
  • Qt实现2D绘图

    一 介绍 Qt中提供了强大的2D绘图系统 可以使用相同的API在屏幕和绘图设备上进行绘制 它主要基于QPainter QPaintDevice和QPaintEngine这三个类 其中QPainter用来执行绘图操作 QPaintDevice
  • 科技抗老新突破,香港美容仪品牌内地重磅上市

    近年来 新消费时代 颜值经济 的火热促使美容行业市场规模增长迅速 越来越多的人愿意为 美 买单 对美的需求也随之增长 美容行业已经成为成长最快的新锐产业 随着经济和科技的发展 快捷 也成为了当今社会的时代特征 美容行业也从传统的美容院向家用
  • 竞赛选题 opencv 图像识别 指纹识别 - python

    0 前言 优质竞赛项目系列 今天要分享的是 基于机器视觉的指纹识别系统 学长这里给一个题目综合评分 每项满分5分 难度系数 3分 工作量 3分 创新点 4分 该项目较为新颖 适合作为竞赛课题方向 学长非常推荐 更多资料 项目分享 https
  • 前端安装vue-cli报错:npm ERR! notarget No matching version found for vue@cli.

    安装vue cli的版本3以上的内容 命令中 在最前 不在中间 对的命令是npm install g vue cli C Users 15232 gt npm install g vue cli npm ERR code ETARGET n
  • Linux 安装Mysql 详细教程(图文教程)

    首先通过xshell或者 putty 远程进入Linux 命令行操作界面 Xshell 的安装 1 去XShell Download下载需要的版本 XShell免费版 解决官网打不开的问题 百度网盘 https pan baidu com
  • 用6个实例,8段代码,详解Python中的for循环

    目录 前言 01 使用tryexcept的for循环 02 指数运算 03 嵌套的循环 04 在for循环中使用split 函数 1 使用split 函数做单词比较 2 使用split 函数打印指定格式的文本 3 使用split 函数打印固
  • windows 7Z命令行与安装

    7z 全称7 Zip 是一款开源软件 是目前公认的压缩比例最大的压缩解压软件 7z exe在CMD窗口的使用说明如下 7 Zip A 4 57 Copyright c 1999 2007 Igor Pavlov 2007 12 06 Usa
  • colmap代码解读

    clomap是作者在ECCV2016年发表的基于两个概率的深度值和法线估计的论文 开源 下面就开源代码Patch match cuda cu文件做简单的介绍 产生随机法向量和随机深度值 扰动法向量 产生随机三个方位角度 和扰动深度值 根据像
  • 多线程案例(2) - 阻塞队列

    目录 一 阻塞队列 1 1 什么是阻塞队列 1 2 生产者消费者模型 1 3 标准库中的阻塞队列 1 4 阻塞队列的实现 一 阻塞队列 1 1 什么是阻塞队列 阻塞队列 BlockingQueue 是一种特殊的队列 遵循 先进先出 的原则
  • Deep-Learning-YOLOV4实践:ScaledYOLOv4模型训练自己的数据集调试问题总结

    error error1 CUDA out of memory error2 TypeError can t convert cuda error Deep Learning YOLOV4实践 ScaledYOLOv4 数据集制作 Deep
  • 知识库-kafka shell脚本用法

    脚本名称 用途描述 connect distributed sh 连接kafka集群模式 connect standalone sh 连接kafka单机模式 kafka acls sh todo kafka broker api versi
  • 一篇搞定dockerfile定制镜像过程

    一 定制镜像的两种方法 1 docker commit 通过已有容器创建镜像 提交容器快照作为镜像 不推荐 2 docker build 就是本文着重讲的dockerfile创建镜像方式 推荐 docker commit无法还原镜像制作过程
  • 【Linux学习】epoll详解

    什么是epoll epoll是什么 按照man手册的说法 是为处理大批量句柄而作了改进的poll 当然 这不是2 6内核才有的 它是在2 5 44内核中被引进的 epoll 4 is a new API introduced in Linu
  • centos7运行vue项目问题汇总

    一 node踩坑之This is probably not a problem with npm There is likely additional logging output above 错误 解决步骤 1 可能由于种种版本更新的原因
  • windbg 常用命令详解

    一 1 address eax 查看对应内存页的属性 2 vertarget 显示当前进程的大致信息 3 peb 显示process Environment Block 4 lmvm 可以查看任意一个dll的详细信息 例如 我们查看cyus
  • java中List按照指定字段排序工具类

    文章标题 java中List按照指定字段排序工具类 文章地址 http blog csdn net 5iasp article details 17717179 包括如下几个类 1 实体类 package com newyear wish
  • 【C语言】螺旋数组

    螺旋数组的打印 程序C语言代码 更改宏定义的数值即可实现螺旋数组行列的变化 include stdio h define ROW 5 宏定义行 define COL 5 宏定义列 void main int arr ROW COL 0 in
  • Python Decorators(二):Decorator参数

    Python Decorators II Decorator Arguments October 19 2008 本文是Python 3 Patterns Idioms Python3之模式和用法 一书的章节节选第二部分 点击这里阅读第一部
  • Kotlin数据类型(一:数据类型)

    一 Boolean Boolean类型有两种类型的 true flase val a Boolean true val b Boolean false 二 Number数据类型 package net println kotlin auth