Kotlin教程之基本数据类型
发布时间 - 2026-01-11 01:14:52 点击率:次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
只要 Kotlin 可以推导,这个规则同样适用与其他一些类型。通常,如果是局部变量,当你在声明一个值或者变量的时候你不需要指明类型。在一些无法推导的场景里,你才需要用完整的声明变量语法指明变量类型。
看到var 你是否联想到了我们在js开发中的变量声明,是不是感觉又从陌生回到了熟悉的面孔,那还在等什么赶快加入到学习的行列吧。
代码中使用声明:
val a: Int? = 10000 val b: Long? = a var f: Float? = 0F var d: Double? = 0.0
使用中转型注意:
显式转换
由于不同的表示,短类型不是长类型的子类型。如果是的话我们就会碰到下面这样的麻烦了
//这是些伪代码,不能编译的 val a: Int? =1 //一个装箱过的 Int (java.lang.Integer) val b: Long? = a // 一个隐式装箱的 Long (java.lang.Long) pritn ( a == b )// 很惊讶吧 这次打印出的是 'false'
因此特性甚至值都会悄悄丢失掉
所以,短类型是不会隐式转换为长类型的。这意味着我们必须显式转换才能把 Byte 赋值给 Int
val b: Byte = 1 // OK, literals are checked statically val i: Int = b //ERROR //我们可以通过显式转换把数值类型提升 val i: Int = b.toInt() // 显式转换
每个数值类型都支持下面的转换:
toByte(): Byte toShort(): Short toInt(): Int toLong(): Long toFloat(): Float toDouble(): Double toChar(): Char
隐式转换的缺席是很少提及,因为我们可以使用上下文推断出类型,并且算术运算会为合适的转换进行重载,比如1
val l = 1.toLong + 1 //Long + Int => Long
Char字符
由于不是数值类型,所以我们必须这样使用:
fun check(c: Char) {//函数先判断是不是Char类型
if (c == 1) { //ERROR: 类型不匹配
//...
}
}
字符是单引号包起来的 ‘1','\n','\uFF00'。我们可以显示的把它转换为 Int 型
fun decimalDigitValue(c: Char): Int {
if (c !in '0'..'9')
throw IllegalArgumentException("Out of range")
return c.toInt() - '0'.toInt() //显示转换为数值类型
}
和数值类型一样,字符在空检查后会在需要的时候装箱。特性不会被装箱操作保留的。
布尔类型
布尔值只有 true 或者 false+
布尔值的内建操作包括
|| – lazy disjunction && – lazy conjunction
结尾
好了Kotlin的基本数据类型的使用也是讲完了,学习是我们前进的不竭动力。下一篇我们来讲Kotlin引用数据类型的使用。
Come on,enjoy it.
# Kotlin学习之基本数据类型
# Kotlin数据类型
# Kotlin基本数据类型详解
# Kotlin基础教程之数据类型
# Kotlin编程条件控制示例详解
# Kotlin编程循环控制示例详解
# kotlin实战教程之lambda编程
# Kotlin编程基础数据类型示例详解
# 我们可以
# 布尔
# 都是
# 内建
# 转换为
# 隐式
# 你不
# 整型
# 我们必须
# 布尔值
# 很相似
# 的是
# 这是
# 变量名
# 就会
# 浮点数
# 好了
# 就像
# 还在
# 将会
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
青岛网站建设如何选择本地服务器?
如何在Windows服务器上快速搭建网站?
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
智能起名网站制作软件有哪些,制作logo的软件?
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
nginx修改上传文件大小限制的方法
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
如何在IIS中配置站点IP、端口及主机头?
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
JavaScript数据类型有哪些_如何准确判断一个变量的类型
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
Laravel如何使用Blade组件和插槽?(Component代码示例)
,怎么在广州志愿者网站注册?
如何在七牛云存储上搭建网站并设置自定义域名?
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
北京专业网站制作设计师招聘,北京白云观官方网站?
JavaScript如何操作视频_媒体API怎么控制播放
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
如何用美橙互联一键搭建多站合一网站?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
怎么用AI帮你为初创公司进行市场定位分析?
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
C++时间戳转换成日期时间的步骤和示例代码
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
Python并发异常传播_错误处理解析【教程】
Laravel如何处理CORS跨域请求?(配置示例)
java中使用zxing批量生成二维码立牌
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Android okhttputils现在进度显示实例代码
canvas 画布在主流浏览器中的尺寸限制详细介绍
LinuxShell函数封装方法_脚本复用设计思路【教程】
如何快速辨别茅台真假?关键步骤解析
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
PHP 500报错的快速解决方法
零服务器AI建站解决方案:快速部署与云端平台低成本实践
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
实现点击下箭头变上箭头来回切换的两种方法【推荐】
网站制作大概多少钱一个,做一个平台网站大概多少钱?
javascript日期怎么处理_如何格式化输出
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
如何用好域名打造高点击率的自主建站?
七夕网站制作视频,七夕大促活动怎么报名?
如何在宝塔面板创建新站点?
香港服务器WordPress建站指南:SEO优化与高效部署策略
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
Laravel怎么为数据库表字段添加索引以优化查询
如何在Windows虚拟主机上快速搭建网站?

