Kotlin基础教程之数据类型
发布时间 - 2026-01-11 01:26:29 点击率:次Kotlin基础教程之数据类型

一切都是对象.
在Kotlin中一切都是对象.Kotlin有一些基本类型Boolean,Byte,Shot,Int,Long,Float,Double
在Kotlin中没有原始类型,以上这些类型都是对象,比如
运行结果如下
Kotlin支持16进制字面值,二进制字面值和科学记数法,官方文档中没有提到8进制
所有基本的几个数据类型不会进行显式类型转换,这一点尤为重要!那么如何进行转换呢?如下:
可以使用toLong,toInt,toShort,toChar等函数进行转换,不仅如此,数组Array<>也是对象,不但可以通过asList函数转换为List对象,数组类甚至包含了一个用于计算平均值的average函数.实际上Kotlin数组真的很像Collection(虽然Array并没有实现Collection接口).数组类还有其他很多函数,现在初学Kotlin还并不清楚用途.Kotlin毕竟太新,能找到的教程几乎只有一本英文的官方文档.(如果我能学完的话那么我的这些blog或许也能成为教程.)
我们还看到了一些有趣的东西,比如在字符串中使用${}进行替换,字符串中的代码会被执行,最后的结果被插入到字符串中,这一点简直和Unix Shell脚本里面的替换语法如出一辙,想来Kotlin也是受到了很多语言的启发.
这段代码运行结果如下
关于数组的初始化,也很有趣,如下:
前面已经说过了arrayOf()函数可以创建一个数组,Kotlin自动判断类型,比如x就是Array<String>类型,那么y是什么类型呢?
y最后会变成Array<Comparable<out Any?>>类型,Comparable是一个表示"可比较"含义的接口,Any代表任何类型,问号代表可以为null,虽然暂时看不懂,不过这并不影响.
除了arrayOf函数,还有intArrayOf,longArrayOf,doubleArrayOf等等函数
除此之外,Array有自己的构造函数,第一个参数是数组元素个数,第二个参数是一个lambda表达式或者说一个函数或者说一个迭代器(某种意义上可以看作一样东西),在Kotlin中一定程度上实现了统一.
lambda或者说迭代器在Kotlin中使用非常普遍,相信大家已经深有体会 :-) 经常看到默认的那个it(笑)
运行结果不出所料,如下
iterator从0开始哦!
i.plus(i) 等同于i+i,plus就是加法函数.Kotlin就是通过将操作符与函数进行绑定实现了操作符重载的功能(这个以后再看)
除了基本类型,数组类型,还有其他的类之外,Kotlin还有很多有趣的类型(当然他们都是对象),比如Range就是Kotlin中的一种极其有趣的类型,如下:
Range,顾名思义,就是一个范围,这个函数第一句代码定义x为IntRange类型(当然也存在DoubleRange,LongRange等),
根据1.rangeTo(5)我们可以猜测x就代表1到5这样一个范围,那么这样的范围有什么用呢?
很明显可以用在循环中(不是所有的Range都可以用在循环中,要想在循环中使用Range,必须实现iterator)
从for(a:Int in x) print("$a\t")一句我们可以看出,Range实际上可以用来限制循环控制变量的范围
这段代码输出如下
当然对于Kotlin这样追求简洁到极致的语言,使用val x:IntRange = 1.rangeTo(5)实在是太麻烦了,
你可以直接使用var y = 1..5 达到相同的效果,不仅如此,在for循环中a:Int 也可以简化为a
编译器可以自动判断数据类型,其实在前面的代码中所有的数据类型声明都可以省略,就像这样
大多数变量的类型,编译器会自动判断,我之所以把类型写出来是为了让诸位更容易看清楚代码.
如果你仔细发现的话,在Kotlin中还有很多简化代码的方法,尽量少敲键盘是这个语言很大的特点.
另外,这是我们第一次看到控制流(for循环),控制流的东西我打算留到后面,毕竟Kotlin的基本语法特性是在太多了(当然也是考虑到在控制流之前应该先了解操作符,毕竟Kotlin可是支持操作符重载的(笑)).
另外:在Kotlin中Unit类型相当于Java中的void,Unit有时也可以省略.
# Kotlin
# 数据类型
# Kotlin教程
# Kotlin基本数据类型详解
# Kotlin教程之基本数据类型
# Kotlin编程条件控制示例详解
# Kotlin编程循环控制示例详解
# kotlin实战教程之lambda编程
# Kotlin编程基础数据类型示例详解
# 都是
# 或者说
# 是一个
# 一句
# 这段
# 不仅如此
# 用在
# 还有很多
# 自己的
# 这是
# 实现了
# 迭代
# 几个
# 文档
# 如果你
# 是在
# 就像
# 你可以
# 第一个
# 也能
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
Swift中switch语句区间和元组模式匹配
微信小程序 配置文件详细介绍
如何挑选最适合建站的高性能VPS主机?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Java遍历集合的三种方式
北京的网站制作公司有哪些,哪个视频网站最好?
活动邀请函制作网站有哪些,活动邀请函文案?
再谈Python中的字符串与字符编码(推荐)
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
Bootstrap整体框架之CSS12栅格系统
JS碰撞运动实现方法详解
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
高端网站建设与定制开发一站式解决方案 中企动力
如何快速启动建站代理加盟业务?
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
深入理解Android中的xmlns:tools属性
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何在 React 中条件性地遍历数组并渲染元素
如何快速搭建高效简练网站?
如何用西部建站助手快速创建专业网站?
制作企业网站建设方案,怎样建设一个公司网站?
如何快速上传建站程序避免常见错误?
如何在建站之星网店版论坛获取技术支持?
Linux安全能力提升路径_长期防护思维说明【指导】
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
轻松掌握MySQL函数中的last_insert_id()
长沙做网站要多少钱,长沙国安网络怎么样?
php打包exe后无法访问网络共享_共享权限设置方法【教程】
如何快速查询网址的建站时间与历史轨迹?
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
如何基于云服务器快速搭建个人网站?
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
Laravel如何集成Inertia.js与Vue/React?(安装配置)
如何在IIS管理器中快速创建并配置网站?
如何快速搭建高效服务器建站系统?
如何在局域网内绑定自建网站域名?
php结合redis实现高并发下的抢购、秒杀功能的实例
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
免费视频制作网站,更新又快又好的免费电影网站?
网站制作价目表怎么做,珍爱网婚介费用多少?
如何用免费手机建站系统零基础打造专业网站?

