一. 变量概念

在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. 你在开发过程中使用Git Rebase还是Git Merge?

    摘要:在git里面经常的一个争论是到底用rebase还是用merge? 1. 痛苦吗?代码历史中的迷失羔羊 我们先来看一个真实的代码提交历史图形化截图: 图片源自 https://storage.kr ...

  2. Python-通过实例方法调用-统一接口的实现-getter methodcaller

    某项目中,我们的代码使用的2个不同库中的图形类: Circle,Triangle 这两个类中都有一个获取面积的方法接口,但是接口的名字不一样 统一这些接口,不关心具体的接口,只要我调用统一的接口,对应 ...

  3. Appium的一些问题的总结答案

        问题 1. error: Failed to start an Appium session, err was: Error: Requested a new session but one ...

  4. 搭建实用深度学习环境(Ubuntu16.10+Theano0.8.2+Tensorflow0.11.0rc1+Keras1.1.0)

    在动手安装之前,首先要确定硬件,系统,准备安装软件的版本,确定这些软硬件之间是否相互支持或兼容.本文安装的主要环境和软件如下: Ubuntu16.10+CUDA8.0(cudnn5.1,CNMEM)+ ...

  5. 多线程之ReentrantLock篇(五)

    昨天有说过后面讲ReentrantLock,今天我们这篇幅就全局的讲解下,我们在Lock出来前,解决并发问题没得选只能用Synchronized. 一.ReentrantLock PK synchro ...

  6. [JZOJ]2109 清兵线 题解

    ## [JZOJ]2109 清兵线 题解 **FIRST 题目大意** 给你一些正整数,这些正整数为数轴上若干个点代表的数.现求:假设从原点出发,走m以内(包括m)的距离最多能够访问多少个点,输出m- ...

  7. frp内网穿透

    原理 frp(fast reverse proxy)分为Server端和Client端,Server端安装在带有公网IP的服务器上,Client安装在内网环境但能上网的普通PC中. 流程: Serve ...

  8. 空间视频和GIS

    摘要. GIS的空间数据基本单位表示通常是根据 点,线和面.但是,另一种类型的空间数据正在变得越来越频繁 捕获的是视频,但在GIS中却被很大程度上忽略了.数字录像时 是现代社会中常见的一种媒介,包含多 ...

  9. PHP代码审计03之实例化任意对象漏洞

    前言 根据红日安全写的文章,学习PHP代码审计的第三节内容,题目均来自PHP SECURITY CALENDAR 2017,讲完相关知识点,会用一道CTF题目来加深巩固.之前分别学习讲解了in_arr ...

  10. C语言实现和 *.ini文件。

    本文之前由于技术不到位,写的比较挫,最近花了大半天时间写了一个高级点的版本. 这里是我写的代码,已经上传到github了.跳转到github 主要是使用了链表保存ini文件的内容,在程序运行最初会初始 ...