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

Kotlin知识点

Kotlin 是 Google 推荐的用于创建新 Android 应用的语言。使用 Kotlin,可以花更短的时间编写出更好的 Android 应用。

基础

Kotlin 程序必须具有主函数,这是 Kotlin 编译器在代码中开始编译的特定位置。主函数是程序的入口点,或者说是起点。Kotlin 编译器会将main函数用作起点。

函数是程序中用于执行特定任务的部分。您的程序中可以有多个函数,也可以只有一个函数。 

定义函数后,再调用函数。

定义函数

以下是定义函数所需的关键部分:

  • 函数需要有名称,这样您以后才能调用它。
  • 函数还可能需要一些输入或需要在调用函数时提供的信息。函数要利用这些输入来实现其目的。输入并非硬性要求,有些函数不需要输入。
  • 函数还要有主体,其中包含执行任务的指令。

Kotlin中定义函数必须遵循一下规则:

单词“fun”必须放在最前面,接着是函数名称,之后是用圆括号括起的输入,再之后是用花括号括起的主体。 

函数关键字

为了指明即将使用 Kotlin 定义函数,在新行中输入特殊单词 fun(函数的缩写)。输入的 fun 必须与此处所示的单词完成相同,所有字母均为小写形式。不能使用“func”、“function”或其他拼写,因为 Kotlin 编译器会无法识别其含义。

这些特殊单词在 Kotlin 中称为关键字,专用于特定用途,例如在 Kotlin 中创建新函数。

函数名称

函数需要用名称来区分彼此,函数的名称位于 fun 关键字后面。

名称通常是动词或动词短语。不要使用 Kotlin 关键字作为函数名称。

函数名称应遵循驼峰式大小写的规范。

Kotlin中的数据类型

Kotlin中定义变量 

 定义新变量,用Kotlin 关键字开头

  • val 关键字用于定义只读变量;其中的变量一旦赋值,就不能再更改。
  • var 关键字用于定义可变变量。(将变量声明为 var,才能更新其值)

如果在声明变量时未提供初始值,就必须指定类型。

所以声明变量还可以简写为:

val count1 = 2  //该变量的值不能再改变
var count2 = 2  该变量的值可改变
//一下是错误的代码
count1 = 1
//一下是可以执行的代码
count2 = 1
val count: Int    //未声明值时,类型必须声明

使用变量,在变量前面加$符号

fun main() {val count: Int = 2println("我 $count 岁了.")//我2岁了.
}

 若是复杂的表达式,就必须用大括号将该表达式括起来,并在大括号前添加 $ 符号:

${count1 + count2}

 + 号将两个字符串加在一起,这两个字符串之间不会添加任何额外的空格。如果想让输出字符串中的冒号后面有空格,则需要在其中一个字符串中添加空格。 

在Kotlin中创建和使用函数

fun main() {//在main函数中调用自定义函数customFun()    
}//自定义函数
fun customFun() {println("11")println("22")
}
11
22

Unit 类型

默认情况下,如果不指定函数返回值类型,默认返回值类型是 UnitUnit 表示函数并不会返回值。Unit 相当于其他语言中的 void 返回值类型。

不返回任何内容或返回 Unit 的函数,不需要使用 return 语句。

fun customFn(): Unit {println("11")println("22")
}
fun main() {println(customFn2())  //yt
}
fun customFn2(): String {val a = "yt"return "$a"
}

给函数传递形参

每个形参均由变量名称数据类型组成,以冒号和空格分隔。多个形参以英文逗号分隔。

fun main() {println(customFn("yt", 18))/*姓名:yt年龄:18*/
}
fun customFn(name: String, age: Int): String {val a = "姓名:$name"val b = "年龄:$age 岁"return "$a\n$b"
}

相关文章:

Kotlin知识点

Kotlin 是 Google 推荐的用于创建新 Android 应用的语言。使用 Kotlin,可以花更短的时间编写出更好的 Android 应用。 基础 Kotlin 程序必须具有主函数,这是 Kotlin 编译器在代码中开始编译的特定位置。主函数是程序的入口点,或者说是起点。…...

亚马逊云科技联合霞光社发布《2013~2023中国企业全球化发展报告》

中国企业正处于全球聚光灯下。当企业全球化成为时代发展下的必然趋势,出海也从“可选项”变为“必选项”。中国急速扩大的经济规模,不断升级的研发和制造能力,都在推动中国企业不断拓宽在全球各行业的疆域。 过去十年,是中国企业…...

【解析excel】利用easyexcel解析excel

【解析excel】利用easyexcel解析excel POM监听类工具类测试类部分测试结果备注其他 EasyExcel Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题&…...

JQuery操作单选按钮Radio和复选框checkbox

获取选中值: $(input:radio:checked).val();$("input[typeradio]:checked").val();$("input[namerd]:checked").val();$("input[idrand_question]:checked").val();设置第一个Radio为选中值: $(input:radio:…...

7.28 作业 QT

手动完成服务器的实现&#xff0c;并具体程序要注释清楚: widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器类 #include <QTcpSocket> //客户端类 #include <QMessageBox> //对话框类 #include …...

HTML <pre> 标签

定义和用法 pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。 <pre> 标签的一个常见应用就是用来表示计算机的源代码。 可以导致段落断开的标签(例如标题、"><p> 和 标签"><a…...

查询结果元数据-MetaData对象、数据库工具类的封装、通过反射实现数据查询的封装

六、查询结果元数据-MetaData对象 七、数据库工具类的封装 1、PropertieUtil类 2、DbUtil类 3、DBHepler类 查询&#xff1a; 4、TestDb测试类&#xff1a; 更新&#xff1a; 1&#xff09;插入&#xff1a; 2&#xff09;修改&#xff1a; 3&#xff09;删除&#xff1a; 查…...

【Minio中间件】上传图片并Vue回显

流程&#xff1a; 目录 1.文件服务器Minio的安装 1.1 下载Minio安装后&#xff0c;新建1个data文件夹。并在该安装目录cmd 敲命令。注意不要进错目录。依次输入 1.2 登录Minio网页端 1.3 先建1个桶&#xff08;buckets&#xff09;&#xff0c;点击create a bucket 2. Spr…...

Jmeter配置不同业务请求比例,应对综合场景压测

需求&#xff1a; 每次向服务器发出请求时&#xff0c;先生成一个随机数&#xff0c;我们对随机数的取值划分若干个范围&#xff08;对应若干个业务请求&#xff09;&#xff0c;然后对随机数进行判断&#xff0c;当随机数落在某个范围内&#xff0c;就可以执行对应的请求。比…...

数学分析:流形的线性代数回顾

因为是线性的&#xff0c;所以可以把所有的系数都提取出去。这也是多重线性代数的性质。可以看成基本的各项自变量的乘法。 这里可以看到两个不同基向量下&#xff0c;他们的坐标转化关系。 引出了张量积&#xff0c;也就是前面提到的内容。 对偶空间的例子总是比较美好。 因为…...

前端请求后端接口返回错误码

1、如果 HTTP Code 是 2xx 范围内的&#xff0c;那通常表明请求已经成功处理&#xff0c;并且可以根据具体的 HTTP Code 进一步判断请求的处理结果。比如&#xff1a; HTTP Code 200 表明请求成功&#xff0c;并返回了请求资源&#xff1b;HTTP Code 204 表明请求成功&#xf…...

【Java Web】Nacos 介绍和安装教程

文章目录 1. Nacos 介绍1.1 Nacos 的定义1.2 Nacos 的主要功能1.2.1 服务注册与发现1.2.2 配置管理1.2.3 动态 DNS 服务1.2.4 服务和元数据管理 1.3 Nacos 的适用场景1.3.1 微服务架构1.3.2 动态配置管理1.3.3 多环境部署1.3.4 云原生应用 2. Nacos 的核心组件2.1 服务注册与发…...

web漏洞-java安全(41)

这个重点是讲关于java的代码审计&#xff0c;看这些漏洞是怎么在java代码里面产生的。 #Javaweb 代码分析-目录遍历安全问题 这个漏洞原因前面文章有&#xff0c;这次我们看看这个漏洞如何在代码中产生的&#xff0c;打开靶场 解题思路就是通过文件上传&#xff0c;上传文件…...

用CSS和HTML写一个水果库存静态页面

HTML代码&#xff1a; <!DOCTYPE html> <html> <head><link rel"stylesheet" type"text/css" href"styles.css"> </head> <body><header><h1>水果库存</h1></header><table>…...

【回眸】备考PMP考点汇总 三(距离考试还有20天)

目录 前言 【回眸】备考PMP考点汇总 三&#xff08;距离考试还有20天&#xff09; 29、管理质量 30、获取资源 31、建设团队 32、管理团队 33、管理沟通 34、实施风险应对 35、实施采购 36、管理相关方参与 37、监控项目工作&#xff08;10%&#xff09; 38、实施整…...

新房的收房验房注意事项

文章目录 流程注意事项准备检查材料手续整体结构验收水电检测门窗结构地面工程墙面工程顶面工程阳台厨房卫生间户外设施 流程注意事项 只要发现问题&#xff0c;不管大小&#xff0c;都要在相关文件或表格中记录下来&#xff0c;而不管开发商以及陪同的收房人员如何花言巧语。…...

ARM裸机-5

1、可编程器件的编程原理 1.1、电子器件的发展方向 模拟器件-->数字器件 ASIC-->可编程器件 1.2、可编程器件的特点 CPU在固定频率的时钟控制下节奏运行。 CPU可以通过总线读取外部存储设备中的二进制指令集&#xff0c;然后解码执行。 这些可以被CPU解码执行的二进制指…...

SpringCloud学习路线(11)——分布式搜索ElasticSeach场景使用

一、DSL查询文档 &#xff08;一&#xff09;DSL查询分类 ES提供了基于JSON的DSL来定义查询。 1、常见查询类型&#xff1a; 查询所有&#xff1a; 查询出所有的数据&#xff0c;例如&#xff0c;match_all全文检索&#xff08;full text&#xff09;查询&#xff1a; 利用…...

负数补码表示

负数补码作用 在计算机中加法和减法采用同一电路&#xff0c;即用加法表示减法&#xff0c;如7 - 2 5变成7 &#xff08; -2&#xff09; 5&#xff0c;这样减法的电路不用另行设计&#xff0c;但计算机中数据以二进制存储&#xff0c;没有负号&#xff0c;因此设计负数补码代…...

ChatGPT结合知识图谱构建医疗问答应用 (一) - 构建知识图谱

一、ChatGPT结合知识图谱 在本专栏的前面文章中构建 ChatGPT 本地知识库问答应用&#xff0c;都是基于词向量检索 Embedding 嵌入的方式实现的&#xff0c;在传统的问答领域中&#xff0c;一般知识源采用知识图谱来进行构建&#xff0c;但基于知识图谱的问答对于自然语言的处理…...

鸿蒙同城兴趣圈页面构建:附近社群与兴趣标签模块详解

鸿蒙同城兴趣圈页面构建&#xff1a;附近社群与兴趣标签模块详解 前言 在 HarmonyOS 6.0 应用开发中&#xff0c;社交类页面的核心挑战在于如何高效展示附近社群、兴趣标签和活动信息。本文将以“同城兴趣圈”应用的主页面为例&#xff0c;深入解析如何在鸿蒙平台上构建社交发现…...

Vue-Tree-List 实战指南:构建现代化树形结构的终极方案

Vue-Tree-List 实战指南&#xff1a;构建现代化树形结构的终极方案 【免费下载链接】vue-tree-list &#x1f332;A vue component for tree structure 项目地址: https://gitcode.com/gh_mirrors/vu/vue-tree-list 在现代前端开发中&#xff0c;树形结构是处理层级数据…...

【案例共创】CodeArts+SKILL 双引擎:AI 驱动 WEB 服务器极速部署

本案例由开发者&#xff1a;JeffDing提供&#xff0c;华为开发者空间案例中心优化并收录。 最新案例动态&#xff0c;请查阅【案例共创】CodeArtsSKILL 双引擎&#xff1a;AI 驱动 WEB 服务器极速部署小伙伴们快来进行实操吧&#xff01; 一、概述 1.1 案例介绍 华为云码道…...

Claude中文完整上手指南:官网、API、Claude Code与国内使用一篇讲透

Claude中文完整上手指南&#xff1a;官网、API、Claude Code与国内使用一篇讲透 写在前面 现在再看 Claude&#xff0c;已经不能只把它当成一个聊天工具了。 对普通用户来说&#xff0c;它是一个很强的长文理解、写作整理和复杂问答助手&#xff1b;对开发者来说&#xff0c;…...

Topit:Mac窗口置顶终极指南 - 三步打造高效多任务工作环境

Topit&#xff1a;Mac窗口置顶终极指南 - 三步打造高效多任务工作环境 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 还在为Mac上频繁切换窗口而烦恼吗&#x…...

BilibiliDown完整使用指南:5步掌握B站视频批量下载技巧

BilibiliDown完整使用指南&#xff1a;5步掌握B站视频批量下载技巧 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/…...

3分钟掌握PCB交互式BOM:告别传统表格的终极可视化方案

3分钟掌握PCB交互式BOM&#xff1a;告别传统表格的终极可视化方案 【免费下载链接】InteractiveHtmlBom Interactive HTML BOM generation plugin for KiCad, EasyEDA, Eagle, Fusion360 and Allegro PCB designer 项目地址: https://gitcode.com/gh_mirrors/in/InteractiveH…...

Donut端到端票据识别:小票图像直出结构化JSON

1. 项目概述&#xff1a;一张小票&#xff0c;如何让AI“看懂”并结构化输出&#xff1f;你有没有试过把超市小票拍张照&#xff0c;想让手机自动提取“总金额&#xff1a;89.50”“商品&#xff1a;牛奶2”“时间&#xff1a;2024-03-12 18:23”这些信息&#xff1f;不是OCR识…...

护照照片怎么在手机上拍好?2026年用微信小程序搞定的完整方案

很多人做护照照片默认找线下照相馆&#xff0c;但其实用手机微信小程序这个组合已经完全够用。微信里有个叫多多职业照的小程序在处理各类证件照的需求上效率比较高&#xff0c;这篇文章就详细拆解一下这个方向&#xff0c;搭配同家的立得一寸照、奈斯证照助手、抠图喵作为补充…...

回归测试:确保 Harness 更新不破坏现有功能

回归测试实战指南:如何确保Harness平台更新不破坏现有CI/CD核心功能? 摘要/引言 你有没有遇到过这种场景:为了用上Harness新出的金丝雀发布优化功能,团队兴高采烈更新了平台版本,结果第二天全公司一半的发版流水线集体挂了?跨阶段传参失效、K8s部署权限报错、自定义插件…...