一. 变量概念

在Kotlin中变量其实对应着内存中特定区域,变量就像是一个装“数据”的容器

1 val num1:Int = 100
2 var num2:Int = 99

关键字 val 表示变量为只读变量,只读变量只能初始化一次,一旦初始化之后不能更改

关键字 var 表示变量是可读可写变量,可以随意更改值

Kotlin编译器提供的“类型推导”功能

在定义变量时,如果需要同时给它一个初始值,则可以省略变量的类型,因为kotlin编译器会根据初始值定义变量类型,否则必须在变量后跟上一个“ : ”号和变量类型

Kotlin的变量定义要求小写字母开头,遵从驼峰命名法

1 val myVal = 100            //等价于下一行
2 val myVal:Int = 100

Kotlin要求数据的类型转换进行显式转换

1 val x:Int = 5
2 val y:Long = x.toLong() //Int类型必须手动类型转换才能赋值给Long类型变量

Kotlin对于变量的“判等”有俩种, str1 == str2 , str1 === str2

使用“==”比较俩个字符串变量所引用的字符串内容是否一样

使用“===”比较俩个字符串变量是否应用同一个字符串对象

Kotlin中的常量有俩种

运行时常量: val counter = 100 ,代码在运行存在,数值保持不变

编译时常量: const val MAX_VALUE = 255 ,该变量在编译时全部替换成对应数值,建议全大写加下划线

二.Kotlin的数值类型

不同的数值类型可以存储的数字类型是是不一样的

在Kotlin中的数字类型对应着Java里的俩个类型,原始类型和包装类型,这样开发者可以简化编程难度

Kotlin中的整数类型

1 Byte:[-128,127]                                 //1字节(8)
2 Short:[-32768,32767] //2字节(16)
3 Int:[-2147483648,2147483647] //4字节(32)
4 Long:[-9223372036854775808,9223372036854775807] //8字节(64)

Kotlin中的浮点数类型有 Double 双精度浮点数和 Float 单精度浮点数

在Kotlin中默认浮点数是双精度,在数值后加一个 “f” 或“F”可以指定为单精度,另外可以用“L”来指定长整型,使用前缀“0x”表示十六进制值,“0b”表示二进制值

Kotlin中给变量赋值要满足类型兼容,并且值在变量的范围内,这样才不会编译错误

注意点

1)变量类型转换时,Long类型到Int类型,Double类型到Float类型都可能造成数据截断,导致异常

2)浮点数比较,两个浮点数不能直接比较,需要俩个浮点数之差小于误差范围就可以认为相等

Kotlin的另一个功能:数对,可以通过Pair类把俩个数或三个数看成一个整体

1 val xAndY = Pair<Int, Int ,Int>(10, 20, 30)      //以下俩种方法等价
2 val xAndYWithTo:Pair<Int, Int> = 10 to 20
3 println(xAndY) //输出:(10, 20, 30)
4 println(xAndYWithTo.frist) //也可以通过first和second属性访问数对中的数
5 //数对支持解构式赋值方式
6 val (x, y) = xAndYWithTo //x=10,y=20
7 val (x1, _, z2) = xAndY //使用“_”表示不关心这个数,忽略掉它

4-Kotlin数据类型与变量的更多相关文章

  1. Kotlin数据类型 Unit、Nothing与Nothing?、Any与Any?

    Kotlin数据类型 Unit.Nothing与Nothing?.Any与Any?   本文链接:https://blog.csdn.net/ldxlz224/article/details/9440 ...

  2. Kotlin之定义变量

    java : int n = 30 ; final int m = 30 ; float k = 2.5f; string s = "sss"; short i = 5; bool ...

  3. Python之路----------基础 一(数据类型、变量、基本语法、流程控制)

    一. 数据类型与变量 1.数据类型 整数   #Python在程序中的表示方法和数学上的写法一模一样,-1,0,1都是整数. 浮点数  1 #浮点数就是小数. 字符串 1 #在Python中字符串是以 ...

  4. main方法中声明8种基本数据类型的变量并赋值

    main方法中声明8种基本数据类型的变量并赋值  char→  int→ long→ float→ double byte→ short→ 

  5. iOS开发环境C语言基础 变量 、 数据类型和变量赋值 、 其他 、 运算符

    1 变量使用常用错误汇总 1.1 问题 在我们使用变量的过程中,会遇到一些问题,在此将这些问题进行汇总,在今后使用的过程中,不出错.即使出现错误也可以很快地找到问题所在. 1.2 方案 变量在使用的过 ...

  6. 01-Java基础知识:数据类型与变量、标识符、运算符、表达式

    Java基础知识:数据类型与变量.标识符.运算符.表达式 一.数据类型 Java定义了基本数据类型.引用数据类型.自定义类型. 八种基本数据类型:byte (1). short (2).  int ( ...

  7. Python教程(2.2)——数据类型与变量

    和C/C++.Java一样,Python也有数据类型和变量两个概念. 数据类型 Python中的几个基本数据类型为整数(integer/int).浮点数(float/float).布尔值(boolea ...

  8. [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念

    上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...

  9. JavaScript学习笔记(一)——数据类型和变量

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  10. python入门(8)数据类型和变量

    python入门(8)数据类型和变量 数据类型 在Python中,能够直接处理的数据类型有以下几种: 整数 Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样 ...

随机推荐

  1. Jquery的一键上传组件OCUpload及POI解析Excel文件

    第一步:将js文件引入页面 <script type="text/javascript" src="${pageContext.request.contextPat ...

  2. mysql-14-transaction

    #TCL /* 事务控制语言 事务:一个或一组sql语句组成一个执行单元,每条sql语句相互依赖 这个执行单元要么全部执行.要么全部失败后回滚 案例:转账 事务的acid属性 1.原子性:事务时一个不 ...

  3. Python练习题 023:比后面的人大2岁

    [Python练习题 023] 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后 问 ...

  4. Java知识系统回顾整理01基础07类和对象01引用

    一.引用的定义 引用的概念,如果一个变量的类型是 类类型,而非基本类型,那么该变量又叫做引用. 二.引用和指向 new Hero(); 代表创建了一个Hero对象 但是也仅仅是创建了一个对象,没有办法 ...

  5. 达梦产品技术支持培训-day8-DM8数据库备份与还原-实操

    1.DM8的备份还原方法 Disql 工具:联机数据备份与还原,包括库备份.表空间备份与还原.表备份与还原:  DMRMAN 工具:脱机数据库备份还原与恢复: 客户端工具 MANAGER和CONSOL ...

  6. 2-K8S常用命令

    kubectl 命令行管理工具 类型 命令 描述 基础命令 create 通过文件名或标准输入创建资源 expose 为Deployment,Pod创建service run 在集群中运行一个特定的镜 ...

  7. trie树——【吴传之火烧连营】

    突然发现好像没有讲过一种叫做tire树的神奇东西. 问题描述: 题目描述 [题目背景] 蜀汉章武元年(221年),刘备为报吴夺荆州.关羽被杀之仇,率大军攻吴.吴将陆逊为避其锋,坚守不战,双方成对峙之势 ...

  8. 9.Android-读写SD卡案例

    1.效果如下所示: 2.读写SD卡时,需要给APP添加读写外部存储设备权限,修改AndroidManifest.xml,添加: <uses-permission android:name=&qu ...

  9. (数据科学学习手札97)掌握pandas中的transform

    本文示例文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 开门见山,在pandas中,transform是 ...

  10. 试用 Azure Sql 数据库

    我们的12月试用账号的免费服务里有一个Azure Sql服务,最近正好自己做一个小工具需要一个数据库,正好可以把它当测试库顺便体验一把Azure Sql. 概述 Azure SQL 数据库 Azure ...