前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kotlin:03-变量、常量、数据类型

Kotlin:03-变量、常量、数据类型

作者头像
CnPeng
发布2020-08-11 11:31:51
3210
发布2020-08-11 11:31:51
举报
文章被收录于专栏:CnPengDevCnPengDev

一、变量与数据类型

1、变量的基本概念

变量 :是用来存储数据的一个容器,它其中存储的数据可以在一定的范围内进行变化,这个范围就是数据类型(数据类型后面会有介绍)

Kotlin中变量用 var 来标识,var 的全拼是:variable ['vεəriəbl]

2、变量的声明与使用

代码语言:javascript
复制
fun main(args: Array<String>) {
   var name = "CnPeng"
   println(name)
}

在上面的代码中,我们通过 var name="CnPeng" 声明了一个变量name ,并给他赋值 “CnPeng” ,这样,我们再次执行该main函数时,输出的结果就是 “CnPeng”

关于上图中的bug , 请参考:https://stackoverflow.com/questions/18794573/class-javalaunchhelper-is-implemented-in-both-libinstrument-dylib-one-of-th

3、类型推断与数据类型

代码语言:javascript
复制
//这是一个错误的示例代码:
fun main(args: Array<String>) {
   var name = "CnPeng"
   name=123
   println(name)
}

在上面的代码中,我们给 name 重新赋值123 ,这时候IDEA会爆红,我们将光标移动到表红线的位置会得到一个弹窗提示,如下:

这个弹窗的意思是说:String 类型的变量不能接收 integer 类型的数据!! 这就牵涉到了两个概念,一个是类型推断,一个是数据类型。

(1)、Kotlin常见数据类型

类型

含义

位宽

Byte

整数

8

Short

整数

16

Int

整数

32

Long

整数

64

Float

单精度小数

32

Double

双精度小数

64

String

字符串

Char

字符

Boolean

布尔

  • Byte、Short、Int、Long 都表示整数,但是他们的取值范围不一样,从左到右依次变大。
  • Float、Double 都用来表示小数,但是范围也不一样,Double的范围大于Float。
  • Float类型数据通常会带有后缀 f或者 F
  • 用 双引号包裹起来的内容都是字符串
  • 用单引号括起来的是字符,在kotlin中,字符类型不能直接和数值类型进行操作
  • Boolean类型取值:true, false

上面几种数据类型的具体取值不列举了

(2)、类型推断

var name="CnPeng"

在上面这句代码中,我们将字符串“CnPeng” 赋值给 name , 那么 kotlin 就认为name 就是一个字符串类型的变量了,不能在接收字符串类型之外的值,所以当我们将没加引号的123 赋值给 name 时会报错,这就是类型推断。

除了依靠类型推断让 kotlin 系统自己去确定变量的数据类型之外,我们还可以显示的声明一个变量的类型,代码如下:

代码语言:javascript
复制
fun main(args: Array<String>) {
   var name: String = "CnPeng"  //显示声明数据类型
   println(name)
}

TIPS : 与java 的区别 A : 语句后面不需要写 分号 B : 声明变量的写法不一样,kotlin中变量名在前,类型名在后,变量名与类型之间使用 :链接

二、常量

1、常量的定义

在上一小结中我们知道了什么是变量,那么常量又是什么呢?

常量 也是一个存储数据的容器,它存储的数据是固定的、不会发生变化的。也就是说,常量只能在初始化的时候被赋值。常量是变量的一种特殊形式。

常量 用 Val 来标识,当一个变量通过Val 声明为常量之后,就不能再进行赋值操作,否则会报错,示例代码如下:

2、数字常量的命名

在命名数字常量时可以使用下划线间隔,让数值更易读,示例如下:

代码语言:javascript
复制
val oneMillion = 1_000_000                   //普通int数据
val creditCardNumber = 1234_5678_9012_3456L  //Long类型数据
val socialSecurityNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E              //十六进制类型
val bytes = 0b11010010_01101001_10010100_10010010  //二进制类型

三、补充:打印数值类型变量的取值范围

实际使用中,我们可能需要知道某个数据类型的最大值或者最小值是多少,但是我们不可能完全记住,所以,我们就可以通过调用 MAX_VALUE 或者 MIN_VALUE 来获取,示例代码如下:

代码语言:javascript
复制
fun main(args: Array<String>) {
   var intMax = Long.MAX_VALUE
   var intMin = Long.MIN_VALUE
   println(intMax)
   println(intMin)
}

运行结果:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CnPeng 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、变量与数据类型
    • 1、变量的基本概念
      • 2、变量的声明与使用
        • 3、类型推断与数据类型
          • (1)、Kotlin常见数据类型
          • (2)、类型推断
      • 二、常量
        • 1、常量的定义
          • 2、数字常量的命名
          • 三、补充:打印数值类型变量的取值范围
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档