当前位置: 首页 > news >正文

Kotlin变量与控制条件的基本用法

一、变量与控制条件

1、var与val

var:可修改变量

val:只读变量,只读变量并非绝对只读。

编译时常量只能在函数之外定义,因为函数内常量是在运行时赋值,编译时常量要在变量赋值前存在。并且值是无法修改的。

const var MAX = 100

image-20230904200619068

不使用类型推导的方法:

val j:Int = 0;

2、range表达式 in与until

2.1 左闭右闭区间

用于指定一个数据的区间范围,该区间范围是一个双端闭区间。

var  age = 5;
if(age in 0..3){println("符合");
}else if (age in 4..6){println("不符合")
}
var  age = 5;
if(age !in 0..3){println("符合");
}

2.2 左开右闭区间

那么如果此时我们需要一个左闭右开区间应该怎么做?

我们可以使用until关键字代替。

val range = 0 until 10

3、when表达式

格式:

匹配值 -> { 执行逻辑 }

val school = "0学";
val level = when(school){"幼儿园" -> "幼儿""小学" -> "青年"else -> {println("未知");}
}
println(level);

image-20230904212829685

4、string模板

添加在**${}**中的任何表达式都会作为字符串求值的一部分。

val orgin = "orgin"
val end = "end"
println("$orgin and $end")val flag = false
println("Answer is ${if(flag) "我可以" else "对不起"}")

image-20230904214041524

5、for-in与for-until、for-downTo

5.1 for-in

基本格式:

for(变量 in 区间)

使用in进行循环相当于一个左闭右闭区间

image-20230907150911752

我们发现他相当于i++这样的方式递增,那么我们应该如何实现i+=2

我们可以使用step关键字实现指定递增,这样就相当于i+=2

val i = 0;
for(i in 0..10 step 2){print("$i ")
}

5.2 for-until

使用until相当于一个左闭右开区间。

image-20230907150814467

5.3 for-downTo

我们使用until关键字只能创建升序的一个区间,此时我们需要个降序的区间的话就需要一个新的关键字——downTo,用法如下:

image-20230907152436600

6、基本修饰符

image-20230907202940905


相关文章:

Kotlin变量与控制条件的基本用法

一、变量与控制条件 1、var与val var:可修改变量 val:只读变量,只读变量并非绝对只读。 编译时常量只能在函数之外定义,因为函数内常量是在运行时赋值,编译时常量要在变量赋值前存在。并且值是无法修改的。 const…...

第18章_瑞萨MCU零基础入门系列教程之GPT

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id728461040949 配套资料获取:https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总: ht…...

openssl websockets

1. HTTPS通信的C实现 - 知乎 GitHub - Bwar/Nebula: Nebula is a powerful framwork for building highly concurrent, distributed, and resilient message-driven applications for C....

Vue 组件的单元测试

1、基本的示例 单元测试是软件开发非常基础的一部分。单元测试会封闭执行最小化单元的代码,使得添加新功能和追踪问题更容易。Vue 的单文件组件使得为组件撰写隔离的单元测试这件事更加直接。它会让你更有信心地开发新特性而不破坏现有的实现,并帮助其他…...

海底两万里的思维导图,轻松了解整体的内容

《海底两万里》是一部经典的科幻小说。小说以其丰富的想象力和对海底世界的描绘而闻名于世。今天我们就用思维导图的分支介绍这个作品到底讲了什么。(思维导图示例:迅捷画板) 《海底两万里》是“凡尔纳三部曲”中的第二部(其它两部…...

ZABBIX 6.4官方安装文档

一、官网地址 Zabbix:企业级开源监控解决方案 二、下载 1.选择您Zabbix服务器的平台 2. Install and configure Zabbix for your platform a. Install Zabbix repository # rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-6.4-1.el8…...

本地MQTT服务器搭建(EMQX)

一、下载EMQX 下载地址:EMQ (emqx.com) 打开官网后,选择右边的免费试用按钮 然后单击EMQX Enterprise标签,然后选择下面的EMQX开源版,选择开源版的系统平台为Windows,单击免费下载。 在新页面下单击立即下载 二、安装…...

Docker启动pandora并指定ACCESS TOKEN

把chatGPT_ACCESS_TOKEN改成你的ACCESS_TOKEN 《chatGPT ACCESS TOKEN获取地址(需要魔法)》 docker run -d -m 512m -p 88:88 --privilegedtrue -e PANDORA_SERVER0.0.0.0:88 -e PANDORA_ACCESS_TOKENchatGPT_ACCESS_TOKEN --name pandora pengzhile/pa…...

Python + Jmeter 实现自动化性能压测

Step01: Python脚本开发 文件路径:D://wl//testproject//Fone-grpc//project1//test_client.py Python 脚本作用: 通过 grpc 调用底层 c 的接口,做数据库的数据插入与查询操作,然后将返回的结果进行拼接与输出。 2.代码里面将…...

【Linux进行时】进程状态

进程状态: ❓假设我们在上课,在B站上上课,请问我们的B站是不是一直运行呢?💡不是的! ❓假设我们同时打开了B站和PDF阅读器时,是怎么运行的呢? 💡每一个进程在CPU跑一会&a…...

HarmonyOS开发环境搭建

一 鸿蒙简介: 1.1 HarmonyOS是华为自研的一款分布式操作系统,兼容Android,但又区别Android,不仅仅定位于手机系统。更侧重于万物物联和智能终端,目前已更新到4.0版本。 1.2 HarmonyOS软件编程语言是ArkTS&#xff0c…...

友思特新闻|友思特与IDS深化战略合作伙伴关系

尊敬的客户和合作伙伴, 我们非常高兴地宣布,友思特已经与国际领先的机器视觉解决方案提供商 IDS 深化了我们的合作关系。 作为 IDS 的长期合作伙伴,友思特一直致力于为国内客户提供最先进的机器视觉技术和解决方案。 自从友思特与 IDS 合作…...

ARM Linux DIY(十三)Qt5 移植

前言 板子带有屏幕,那当然要设计一下 GUI,对 Qt5 比较熟悉,那就移植它吧。 移植 Qt5 buildroot 使能 Qt5,这里我们只开启核心功能 gui module --> widgets module 编译 $ make ODIY_V3S/ qt5base编译报错:找不…...

二,手机硬件参数介绍和校验算法

系列文章目录 第一章 安卓aosp源码编译环境搭建 第二章 手机硬件参数介绍和校验算法 第三章 修改安卓aosp代码更改硬件参数 第四章 编译定制rom并刷机实现硬改(一) 第五章 编译定制rom并刷机实现硬改(二) 第六章 不root不magisk不xposed lsposed frida原生修改定位 第七章 安卓…...

ubunutu20/18/22 编译android 5相关的问题汇总-千里马framework开源代码平板编译过程

hi,粉丝朋友们: 闲鱼50块钱淘到了一个开源平板,注意这个平板是有源码的,可以进行相关的编译修改。哈哈哈,马哥这边就体验了一下50块钱平板是否可以拿来做framework呢? 哈哈,说好就开干了&#x…...

tauri vue vite

准备 rust 根据 https://www.rust-lang.org/tools/install,安装 rust 执行 cargo --version 检查安装是否完成nodejs 安装 nodejstauri cargo install create-tauri-app --lockedcargo create-tauri-app 选择: ✔ Project name tauri-app ✔ Choose wh…...

名词解析与经验分享(前端)

目录 1.什么是sass产品 2.下面我想说说事件循环 3. cmd窗口的一些快捷键 4. 组件与插件的区别 5. vue项目嵌入app后调用app方法 6.点击编辑按钮直接回到顶部,输入框光标闪动聚焦 7.短轮询与长轮询 短轮询 长轮询 8.前端moment库 9.移动端-触底刷新实现核心…...

【前端】js下载url文件

不打开新窗口进行下载 function download(res) { var elemIF document.createElement("iframe"); elemIF.src res; elemIF.style.display "none"; document.body.appendChild(elemIF); } window.open(url, _blank); a标签 const ele …...

什么是 BSD 协议?

BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件&…...

【网络教程】揭秘Windows SSH服务端免密登录:告别繁琐,享受安全连接

文章目录 开启Windows下的SSH服务端图形界面安装手动下载安装Windows如何查看系统用户名Windows如何查看本机IP开启免密登录Window生成秘钥Linux下生成秘钥配置公钥视频讲解开启Windows下的SSH服务端 这篇文章演示的环境是Windows11Windows的SSH服务端默认情况下是没有安装的,…...

使用键盘控制Franka机械臂运动

功能说明 使用键盘按键,可以控制franka机械臂7个关节角,已在真机上验证。 代码 主要使用的是官方包内的 franka_example_controllers 1、修改 include下的 joint_position_example_controller.h, 改为如下: // Copyright (c) 2017 Frank…...

力扣第45天----第392题、第115题

# 力扣第45天----第392题、第115题 文章目录 一、第392题--判断子序列二、第115题--不同的子序列 一、第392题–判断子序列 ​ 挺简单的&#xff0c;思路跟以前的都差不多。 class Solution { public:bool isSubsequence(string s, string t) {vector<vector<int>&g…...

扔掉你的开发板,跟我玩Mcore-全志h616

本文转载自WhyCan Forum(哇酷开发者社区)&#xff1a; https://whycan.com/t_10024.html 作者leefei 这是一个1.69寸触摸小电视。使用全志H616芯片&#xff0c;板上硬件有mpu6050陀螺仪&#xff0c;USB转ttl调试串口&#xff0c;一个USB接口&#xff0c;WIFI&蓝牙&#x…...

【Linux】网络篇:UDP、TCP 网络接口及使用

文章目录 socket 及 相关补充0. netstat - - 查询当前服务器上网络服务器1. 端口号&#xff08;port&#xff09;2. 网络字节序3. sockaddr 结构体 一、socket 常见 APIUDP0. IP 地址转化 函数1. socket 函数&#xff1a;创建 socket 文件描述符 (TCP/UDP, 客户端 服务器)2. b…...

卡尔曼滤波(Kalman Filter)原理浅析-数学理论推导-2

目录 前言数学理论推导卡尔曼增益超详细数学推导结语参考 前言 最近项目需求涉及到目标跟踪部分&#xff0c;准备从 DeepSORT 多目标跟踪算法入手。DeepSORT 中涉及的内容有点多&#xff0c;以前也就对其进行了简单的了解&#xff0c;但是真正去做发现总是存在这样或者那样的困…...

SQL 性能优化总结

文章目录 一、性能优化策略二、索引创建规则三、查询优化总结 一、性能优化策略 1. SQL 语句中 IN 包含的值不应过多 MySQL 将 IN中的常量全部存储在一个排好序的数组里面&#xff0c;但是如果数值较多&#xff0c;产生的消耗也是比较大的。所以对于连续的数值&#xff0c;能用…...

MYSQL事务隔离级别分析

MYSQL事务隔离级别分析 不可重复读和幻读的区别&#xff1f; 不可重复读和幻读的区别&#xff1f; 先理解几个概念 不可重复读 一个事务中&#xff0c;后续查询结果得到不同的数据&#xff0c;可被重复读隔离级别解决幻影 出现在查询结果集中但不出现在较早查询的结果集中的行幻…...

学习javaEE初阶的第一堂课

学习金字塔 java发展简史 Java最初诞生的时候是用来写前端的!! 199x年 199x年,互联网还处在比较早期的阶段,当时主流的编程语言是 C/C, 有个大佬要搞个"智能面包机",觉得用C来做太难了 于是就基于C搞了个简单点的语言,Java 就诞生了~~ 遗憾的是项目流产了,没做成…...

请问一下就是业务概念模型和业务逻辑模型有啥关系

请问一下就是业务概念模型和业务逻辑模型有啥关系&#xff1f; 业务概念模型和业务逻辑模型是业务建模的两个关键组成部分&#xff0c;两者密切相关但又有所不同。 1.业务概念模型&#xff1a;这是对业务术语、定义和关系的一种抽象表示。它是从业务专家那里获得的知识&#…...

3.2 Android eBPF程序类型

写在前面 为什么要先了解eBPF程序类型? 从帮助函数中,我们可能基于内核的eBPF开放API,对eBPF的能力有一个比较细致的认识,但是这并不能让我们从全局,或者更概括的认识eBPF。eBPF程序类型能够更宏观的告诉我们,eBPF能做哪些事情(除网络相关)。 一,eBPF程序类型 内核…...

建筑招聘网官网/一键优化是什么意思

环境&#xff1a;tomcat7.0 java1.8 项目框架&#xff1a;zk 系统&#xff1a;centos最近出现了一个很奇怪的问题&#xff0c;通过ip访问项目可以上传文件&#xff0c;但是通过域名访问项目就不可以上传。首先对项目进行一些排查&#xff0c;看看是哪里的问题。下面是我进行的排…...

那些是flash做的网站/西安霸屏推广

作为一名程序员&#xff0c;尤其是开发Android应用程序的程序员&#xff0c;不会自己折腾ROM简直就是一件不好意思的事情&#xff0c;于是乎我就费劲巴力的上网看资料&#xff0c;找工具&#xff0c;准备自己开始制作有“中国特色”的ROM&#xff0c;以下是解决的一些问题&…...

网站版式有哪几种/3小时百度收录新站方法

ClearCase四大功能详述(版本控制) 来源&#xff1a;互联网 作者&#xff1a;IT Jack ClearCase对所有文件系统对象(包括文件、目录和链接)增强了版本控制系统功能。可定版本的文件包括源代码、可执行文件、位图文件、需求文档、设计说明、测试计划、和一些ASCII和非ASCII文件…...

playyo wordpress/抖音怎么推广

随着在拼多多开店的朋友不断增多&#xff0c;竞争也逐渐开始增加。而为了给店铺带来更多的流量&#xff0c;许多商家都会进行搜索推广&#xff0c;那么拼多多推广创意图需要几个&#xff0c;下面就为大家带来介绍。 拼多多推广创意图需要几个&#xff1f; 一般来说&#xff…...

wordpress search url/win10优化工具

作为世界级别的电商平台来讲&#xff0c;想要运营好亚马逊店铺肯定是需要很大的困难的&#xff0c;那么接下来我就要告诉你该怎样去运营。 1、给自己店铺产品做测评 亚马逊测评&#xff0c;相信这个词对很多跨境电商卖家来说并不陌生&#xff0c;因为大家都知道它能迅速帮助自…...

wordpress评论嵌套样式修改/ks刷粉网站推广马上刷

什么是NPOI NPOI是一个开源的C#读写Excel、WORD的组件&#xff0c;可以在没有安装Office的情况下对Word或Excel文档进行读写操作。 使用NPOI的优势 &#xff08;1&#xff09;完全开源 &#xff08;2&#xff09;包含了大部分EXCEL的特性(单元格样式、数据格式、公式等等) …...