• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > Kotlin教程之基本数据类型

Kotlin教程之基本数据类型

作者:Losileeya 字体:[增加 减小] 来源:互联网 时间:2017-05-28

Losileeya 通过本文主要向大家介绍了kotlin教程,kotlin视频教程,kotlin教程pdf,kotlin中文教程,kotlin语言教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Kotlin教程之基本数据类型的学习

基本类型

我们知道java的基本类型分为基本数据类型:

  • int 普通整型
  • float 浮点型
  • char 字符型
  • short 短整型
  • byte 字节型
  • long 长整型
  • double 双精度
  • boolean 布尔型

和引用数据类型:

  • class Type 类类型
  • interface Type 接口类型
  • array Type 数组类型
  • null Type 空类型

在 Kotlin 中,所有变量的成员方法和属性都是一个对象。一些类型是内建的,因为它们的实现是优化过的,但对用户来说它们就像普通的类一样。在这篇中,我们将会讲到大多数的类型:数值,字符,布尔,以及数组。

Kotlin 的 数值类型

Kotlin 处理数值的方法和 java 很相似。比如,不存在隐式转换数值的宽度,并且在字面上有一些小小的不同。

Kotlin 提供了如下内建数值类型(和 java 很相似):

不知道你注意了没有:字符在 Kotlin 中不是数值类型

Kotlin 的 数值类型 的使用

数值类型的声明

1 .变量定义
var <标识符> : <类型> = <初始化值>
常量定义
val <标识符> : <类型> = <初始化值>

可变变量,使用var修饰;不可变的变量(类似于Java中的final),使用val修饰。而在变量类型后使用了问号,表示这个变量是空指针安全的

2 .类型推导

你可能在其他语言中看到过类型推导。在 Java 里,我们需要自己声明类型,变量名,以及数值。在 Kotlin 里,顺序有些不一样,你先声明变量名,然后是类型,然后是分配值。很多情况下,你不需要声明类型。一个字符串字面量足以指明这是个字符串类型。字符,整形,长整形,单浮点数,双浮点数,布尔值都是可以无需显性声明类型的。

var string: String = ""
var string = ""
var char = ' '

var int = 1
var long = 0L
var float = 0F
var double = 0.0

</div>

只要 Kotlin 可以推导,这个规则同样适用与其他一些类型。通常,如果是局部变量,当你在声明一个值或者变量的时候你不需要指明类型。在一些无法推导的场景里,你才需要用完整的声明变量语法指明变量类型。

看到var 你是否联想到了我们在js开发中的变量声明,是不是感觉又从陌生回到了熟悉的面孔,那还在等什么赶快加入到学习的行列吧。

代码中使用声明:

val a: Int? = 10000
val b: Long? = a 
var f: Float? = 0F
var d: Double? = 0.0
</div>

使用中转型注意:

显式转换

由于不同的表示,短类型不是长类型的子类型。如果是的话我们就会碰到下面这样的麻烦了

//这是些伪代码,不能编译的
val a: Int? =1 //一个装箱过的 Int (java.lang.Integer)
val b: Long? = a // 一个隐式装箱的 Long (java.lang.Long)
pritn ( a == b )// 很惊讶吧 这次打印出的是 'false'
</div>

因此特性甚至值都会悄悄丢失掉

所以,短类型是不会隐式转换为长类型的。这意味着我们必须显式转换才能把 Byte 赋值给 Int

val b: Byte = 1 // OK, literals are checked statically
val i: Int = b //ERROR
//我们可以通过显式转换把数值类型提升
val i: Int = b.toInt() // 显式转换
</div>

每个数值类型都支持下面的转换:

toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char
</div>

隐式转换的缺席是很少提及,因为我们可以使用上下文推断出类型,并且算术运算会为合适的转换进行重载,比如1

val l = 1.toLong + 1 //Long + Int => Long
</div>

Char字符

由于不是数值类型,所以我们必须这样使用:

fun check(c: Char) {//函数先判断是不是Char类型
  if (c == 1) { //ERROR: 类型不匹配
    //...
  }
}
</div>

字符是单引号包起来的 ‘1','\n','\uFF00'。我们可以显示的把它转换为 Int 型

fun decimalDigitValue(c: Char): Int {
  if (c !in '0'..'9') 
    throw IllegalArgumentException("Out of range")
  return c.toInt() - '0'.toInt() //显示转换为数值类型
}
</div>

和数值类型一样,字符在空检查后会在需要的时候装箱。特性不会被装箱操作保留的。

布尔类型

布尔值只有 true 或者 false+

布尔值的内建操作包括

|| – lazy disjunction && – lazy conjunction
</div>

结尾

好了Kotlin的基本数据类型的使用也是讲完了,学习是我们前进的不竭动力。下一篇我们来讲Kotlin引用数据类型的使用。

Come on,enjoy it.

 

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • kotlin基础教程之类和继承
  • Kotlin教程之函数和包的定义和流程控制
  • Kotlin教程之基本数据类型
  • Kotlin 基础语法详细介绍
  • kotlin基础教程之类和继承
  • Kotlin教程之函数和包的定义和流程控制
  • Kotlin教程之基本数据类型
  • Kotlin 基础语法详细介绍

相关文章

  • 2017-05-28servlet监听实现统计在线人数功能 附源码下载
  • 2017-05-2810个Java程序员熟悉的面向对象设计原则
  • 2017-05-28JAVA 中解密RSA算法JS加密实例详解
  • 2017-05-28java中FileOutputStream中文乱码问题解决办法
  • 2017-05-28Java中的设计模式与7大原则归纳整理
  • 2017-05-28详解前后端分离之Java后端
  • 2017-05-28Spring boot学习教程之快速入门篇
  • 2017-05-28Java常用字符串方法小结
  • 2017-05-28Java中用Socket实现HTTP文件上传实例
  • 2017-05-28listview点击无效的处理方法(推荐)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Spring boot实现文件上传实例(多文件上传)
    • java高并发写入用户信息到数据库的几种方法
    • 详解java实现遍历二叉树的三种情况
    • 使用ftpClient下载ftp上所有文件解析
    • 详解基于Spring Boot与Spring Data JPA的多数据源配置
    • Mybatis传list参数调用oracle存储过程的解决方法
    • jedis操作redis的几种常见方式总结
    • java设计模式—静态代理模式(聚合与继承方式对比)
    • Java中自动生成构造方法详解
    • 使用Post方法模拟登陆爬取网页的实现方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有