Kotlin 空类型,区间,数组

news2024/12/23 11:05:49

目录

1. 空类型

2. 区间

3. 数组


1. 空类型

我们知道任何一种数据类型都有为空或不为空两种状态,在 Kotlin 中,若允许一个数据为空,则需要使用 "?",默认都不能为空。

代码举例说明

// 给 notNull赋值为空,会编译错误,抛出异常,因为String后面没有加 ?
val notNull:String = null 


// 给 canNull赋值为空,正确,编译可以通过,因为String后面加了 ?
val canNull:String ?= null

这里只是举例String一个例子,其他数据类型也是同理

2. 区间

在 Kotlin 中,有区间这么一个概念,它就是我们数学上说的区间,有开区间或者闭区间之分,通常可以用在循环内。

基本用法

0...100 就表示闭区间 [0,100];

0 until 100 表示左闭右开 [1,100);

继续推理,加入用在循环内,如下

i in 0...100 就表示 i 值是否在闭区间 [0,100] 之间。

Kotlin 中提供了几种区间类,最为常用的就是 "IntRange"。

val range:IntRange=0..100;

3. 数组

简单理解,就是我们Java中的数据,数组中可以存放各种类型的数字,String字符串,或自定义对象。

除此以外,Kotlin 中还有定制数组,如下所示,如果当前数组你只会存放 Int 类型的数据,就定义IntArray 数组,如果存放字符,就定义CharArray。

代码演示如下

// 创建一个int数组
val arrayOfint: IntArray = intArrayOf(1,3,5,7)

// 创建一个Char数组
val arrayOfChar: CharArray = charArrayOf("H","e","l","o","W","o","r","l","d")

// 创建一个自定义对象数组,根据上面创建的类
val array: Array<自定义对象类> = arrayOf(数据1,数据2,数据3)

fun main(args: Array<String>){
	// 打印 int数组
	println(arrayOfInt.size)
	for(int in arrayOfInt){
		println(int)
	}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1513199.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

硬件软件_驱动程序只有cat,inf,sys,怎么安装?

硬件软件_驱动程序只有cat&#xff0c;inf&#xff0c;sys&#xff0c;怎么安装&#xff1f; 右键点击inf文件 -》 安装 即可完成。

centos命令history设置记录10000行

今天在操作服务器的时候&#xff0c;用history查看操作记录的时候&#xff0c;发现只能查看10条&#xff0c;这样不行啊&#xff0c;我想查看所有人对服务器操作的命令。 [rootbogon ~]# history解决办法&#xff1a; #1、找到/etc/profile文件中的histsize 把10改成10000 […

pycharm 历史版本下载地址

pycharm 历史版本下载地址 老版本能用就行&#xff0c;不需要搞最新的&#xff0c;当然了&#xff0c;有些小伙伴就是喜欢新的&#xff08;最先吃螃蟹&#xff09; 博主就不搞最新了&#xff0c;哈哈 上菜&#xff1a; https://www.jetbrains.com/pycharm/download/other.html…

操作系统—自定义系统调用

文章目录 自定义系统调用1.实验基本环境(1).基本系统环境(2).选择替换WSL内核的起因(3).我尝试的改进措施 2.添加系统调用(1).系统调用位置(2).系统调用函数编写(3).添加系统调用号(4).添加编译参数并编译#1.一次极其失败的尝试#2.推倒重来 (5).尝试调用sys_mysyscall 3.后记参…

[译]Python 和 TOML:新最好的朋友 (2) 使用Python操作TOML

文章目录 Python 和 TOML&#xff1a;新最好的朋友使用Python加载TOML使用tomli 或 tomllib 读取TOML文档比较TOML类型和Python类型在项目中使用配置文件 将Python对象转换为TOML将字典转换为 TOML通过tomli_w 写TOML文档 创建新的TOML文件格式和样式用tomlkit 从头开始创建 TO…

创建springboot 2.x web空项目(IDEA)

由于学习时候发现spring官网只能创建springboot3.0的项目&#xff0c;而且不支持java1.8&#xff0c;无法选择java8作为java版本&#xff0c;导致很多教程无法跟着做&#xff0c;因此记录一下可行的创建过程。 &#xff08;Tips:当前spring Initializr不支持java8的解决方式&a…

在win11关闭copilot

在设置中的个性化设置&#xff0c;任务栏处关闭即可。 参考资料 How to disable Copilot in Windows 11

6种最佳的UI设计工具!

最好的UI设计工具可以适应几乎每一个设计过程&#xff0c;并有望满足您的创意需求。UI设计工具为设计师提供了高保真线框图、物理模型和原型所需的精确设计&#xff0c;并提供了最小限度的可行性产品。它们代表设计细节&#xff0c;传达设计功能。用户体验设计工具关注用户&…

C++作业day2

封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c; 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show() #include <iostre…

BM1684X搭建sophon c++环境

1:首先安装编译好sophon-sail 比特大陆BM1684X开发环境搭建--SOC mode-CSDN博客 2:在将之前配置的soc-sdk拷贝一份到sdk根目录&#xff0c;将交叉编译好的sail中的build_soc拷贝至soc-sdk文件夹内&#xff1b; cp -rf build_soc/sophon-sail/inlcude soc-sdk cp -rf build_soc…

测试用例实战(全网最详细-注册,登录,发布文章)

1.注册测试用例实战 需求图片如下&#xff1a; 注册测试点&#xff08;用等价类和边界值&#xff09; 重点提示&#xff1a; 正向&#xff1a;⼀次尽量覆盖多条 逆向&#xff1a;⼀次只能覆盖⼀条&#xff0c;其他选项必须正确。 注册测试用例 注意&#xff1a;注册的测试点…

Linux:深入文件系统

一、Inode 我们使用ls -l的时候看到的除了看到文件名&#xff0c;还看到了文件元数据。 [rootlocalhost linux]# ls -l 总用量 12 -rwxr-xr-x. 1 root root 7438 "9月 13 14:56" a.out -rw-r--r--. 1 root root 654 "9月 13 14:56" test.c 每行包含7列&…

一文弄懂空间金字塔池化网络

目录 空间金字塔池化网络是什么&#xff1f; 组成部分和工作原理 具体步骤 ​编辑 主要优点 空间金字塔池化网络是什么&#xff1f; 空间金字塔池化网络&#xff08;Spatial Pyramid Pooling Network&#xff0c;SPPNet&#xff09;是一种用于处理具有不同尺寸和比例的输入…

选股就用河北源达“财源滚滚”选股软件

在股市投资的道路上&#xff0c;选股无疑是至关重要的一环。然而&#xff0c;面对海量的个股信息和复杂的市场环境&#xff0c;如何科学、准确地选股&#xff0c;成为了投资者必须面对的难题。河北源达信息技术股份有限公司推出的“财源滚滚”选股软件&#xff0c;以其独特的优…

Kotlin 数据解析(Gson)

一、添加依赖 build.gradle.kts(:app) // gson数据解析implementation("com.google.code.gson:gson:2.8.6") 对象类&#xff1a; // 对象类 class Account {var uid:String "00001"var userName:String "Freeman"var password:String &quo…

使用IDEA构建SpringBoot程序的镜像

实战&#xff1a;使用IDEA构建SpringBoot程序的镜像 这里就以我之前写的WIT问卷管理系统为例子吧。 首先在之前写好的SpringBoot项目中新建一个DockerFile 在Dockerfile中写入我们的base镜像&#xff0c;之前我已经创建好了并且传到docker仓库了&#xff0c;这里就直接拉取 …

【教程】APP加固的那些小事情

摘要 APP加固是保护APP代码逻辑的重要手段&#xff0c;通过隐藏、混淆、加密等操作提高软件的逆向成本&#xff0c;降低被破解的几率&#xff0c;保障开发者和用户利益。本文将介绍APP加固常见失败原因及解决方法&#xff0c;以及处理安装出现问题的情况和资源文件加固策略选择…

yolo发展历史

yolo系列 一、任务描述二、设计思想三、发展历程1. YOLOv11.1问题背景1.2创新点1.3训练流程1.4检测流程1.4.1 优点1.4.2 缺点 2. YOLOv22.1问题背景2.2创新点2.3提升性能的方法2.4训练流程&#xff1f;&#xff1f;&#xff1f;&#xff1f; 3. YOLOv33.1问题背景3.2模型改进 4…

MySQL学习Day31-主从复制

一、主从复制概述: 主从复制作用1:读写分离&#xff0c;可以通过主从复制的方式来同步数据&#xff0c;然后通过读写分离提高数据库并发处理能力;其中一个是Master主库&#xff0c;负责写入数据;其它都是slave从库&#xff0c;负责读取数据。当主库进行更新的时候&#xff0c;…

相机安装位置固定后开始调试设备供电公司推荐使用方法

摄像头安装位置固定后开始调试 设备供电&#xff1a;无电源设备需要连接12V/2A电源并连接到摄像机的DC端口&#xff0c;而有电源的摄像机可以直接连接到220V电源。 连接设备&#xff1a;如果是有线连接&#xff0c;请使用网线将设备连接到电脑&#xff08;建议直接连接&#…