4-Kotlin数据类型与变量
一. 变量概念
在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数据类型与变量的更多相关文章
- Kotlin数据类型 Unit、Nothing与Nothing?、Any与Any?
Kotlin数据类型 Unit.Nothing与Nothing?.Any与Any? 本文链接:https://blog.csdn.net/ldxlz224/article/details/9440 ...
- Kotlin之定义变量
java : int n = 30 ; final int m = 30 ; float k = 2.5f; string s = "sss"; short i = 5; bool ...
- Python之路----------基础 一(数据类型、变量、基本语法、流程控制)
一. 数据类型与变量 1.数据类型 整数 #Python在程序中的表示方法和数学上的写法一模一样,-1,0,1都是整数. 浮点数 1 #浮点数就是小数. 字符串 1 #在Python中字符串是以 ...
- main方法中声明8种基本数据类型的变量并赋值
main方法中声明8种基本数据类型的变量并赋值 char→ int→ long→ float→ double byte→ short→
- iOS开发环境C语言基础 变量 、 数据类型和变量赋值 、 其他 、 运算符
1 变量使用常用错误汇总 1.1 问题 在我们使用变量的过程中,会遇到一些问题,在此将这些问题进行汇总,在今后使用的过程中,不出错.即使出现错误也可以很快地找到问题所在. 1.2 方案 变量在使用的过 ...
- 01-Java基础知识:数据类型与变量、标识符、运算符、表达式
Java基础知识:数据类型与变量.标识符.运算符.表达式 一.数据类型 Java定义了基本数据类型.引用数据类型.自定义类型. 八种基本数据类型:byte (1). short (2). int ( ...
- Python教程(2.2)——数据类型与变量
和C/C++.Java一样,Python也有数据类型和变量两个概念. 数据类型 Python中的几个基本数据类型为整数(integer/int).浮点数(float/float).布尔值(boolea ...
- [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念
上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...
- JavaScript学习笔记(一)——数据类型和变量
在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...
- python入门(8)数据类型和变量
python入门(8)数据类型和变量 数据类型 在Python中,能够直接处理的数据类型有以下几种: 整数 Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样 ...
随机推荐
- 多线程循环打印数组 -- Java笔记
问题描述: 现有多个长度相同的数组,现要求使用多线程将数组内的数交替打印. 如: int[] ai = {1,2,3,4,5,6,7}; String[] ac = {"A",&q ...
- Lyndon Word相关
Lyndon Word 定义 对于字符串 \(S\),若 \(S\) 的最小后缀为其本身,那么称 \(S\) 为 \(\text{Lyndon}\) 串(\(\text{Lyndon Word}\)) ...
- sqli-labs第三关 详解
通过第二关,来到第三关 我们用了前两种方法,都报错,然后自己也不太会别的注入,然后莫名的小知识又增加了.这居然是一个带括号的字符型注入, 这里我们需要闭合前面的括号. $sql=select * fr ...
- Camera插件之CinematicCamera介绍
Camera插件之CinematicCamera 继承自PerspectiveCame 构造函数引用的PerspectiveCamera的构造函数, 代码如下 var CinematicCamera ...
- ConcurrentHashMap原理分析(二)-扩容
概述 在上一篇文章中介绍了ConcurrentHashMap的存储结构,以及put和get方法,那本篇文章就介绍一下其扩容原理.其实说到扩容,无非就是新建一个数组,然后把旧的数组中的数据拷贝到新的数组 ...
- Python+Appium自动化测试(11)-location与size获取元素坐标
appium做app自动化测试过程中,有时需要获取控件元素的坐标进行滑动操作.appium中提供了location方法获取控件元素左上角的坐标,再通过size方法获取控件元素的宽高,就可以得到控件元素 ...
- golang API 请求队列
概要 实现思路 使用方法 启动队列服务 使用队列服务 概要 在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HTTP ...
- “3D引擎和图形学技术点思路讲解”线上直播培训班报名开始啦(完全免费)
大家好,我开了一个线上的直播课程培训班,完全免费,欢迎大家报名! 本课程重点教授"光线追踪"方面的实现思路. 我的相关经验 5年3D引擎开发经验 Wonder-WebGL 3D引擎 ...
- 多测师讲解 _教师(必备)_高级讲师肖sir
教学心得1.备课要充分,防止第二天上课会出现一些突发情况2.上课要有自己的思路,不一定要按照课件上的讲3.上课气氛比较沉闷的时候,可以适当的开下玩笑,缓解大家的学习氛围4.讲课的时候提醒学员不要做笔记 ...
- Oracle函数总结
<Trunc()> 描 述(实际应用):截取小数或者日期整数 简 介:https://baike.baidu.com/item/trunc/9657216?fr=al ...