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

Kotlin中函数的基本用法以及函数类型

函数的基本用法

1、函数的基本格式

image-20230904214253284

2、函数的缺省值

可以为函数设置指定的初始值,而不必要传入值

private fun fix(name: String,age: Int = 2){println(name + age)
}fun main(args: Array<String>) {fix("张三")
}

输出结果为:张三2

private fun fix(name: String,age: Int = 2){println(name + age)
}fun main(args: Array<String>) {fix("张三",100)
}

输出结果为:张三100

3、Unit函数

不是所有的函数都有初始值,Kotlin中没有返回值的函数叫做Unit函数。

4、Noting类型

TODO函数的任务就是抛出异常。

fun main(args: Array<String>) {fix("张三",100)TODO("异常")
}

image-20230904220613422

image-20230904220530254

5、反引号的函数名

为了支持Kotlin和Java的互相操作,而Kotlin和Java各自有着不同的关键字,不能作为函数名,此时使用反引号就能避免冲突

image-20230904221247545

image-20230904221300227

在这里is作为Kotlin的一个关键字。

6、匿名函数

可以非常简单的定义标准库的内置函数,匿名函数通常整体传递给其他函数,或者从其他函数返回。

6.1 count用于计算字符串大小

image-20230905152442899

使用匿名函数可以计算指定的字符串所包含的字符个数

val total1 = "Mississippi".count {letter -> letter == 's'}
println(total1)

image-20230905153439447

6.2 匿名函数的隐式返回

和具体名函数不一样,一般情况下隐式函数不需要return关键字返回数据,匿名函数会隐式或自动返回函数体最后一行语句的结果。

image-20230905155049543

6.3 it关键字

定义只有一个参数的匿名函数时,可以使用it关键字表示参数名。当你需要传入两个值参,it关键字就不能使用了

image-20230905160526034

image-20230905160642986

相关文章:

Kotlin中函数的基本用法以及函数类型

函数的基本用法 1、函数的基本格式 2、函数的缺省值 可以为函数设置指定的初始值&#xff0c;而不必要传入值 private fun fix(name: String,age: Int 2){println(name age) }fun main(args: Array<String>) {fix("张三") }输出结果为&#xff1a;张三2 …...

在macOS使用VMware踩过的坑

目录 MAC提示将对您的电脑造成伤害/MAC OS 升级到10.15.3后vmware虚拟机黑屏 mac系统下&#xff0c;vm虚拟机提示打不开/dev/vmmon mac VMware Workstation 在此主机上不支持嵌套虚拟化 mac VMware清理虚拟机空间​​​​​​​ MAC提示将对您的电脑造成伤害/MAC OS 升级到…...

构建健壮的Spring MVC应用:JSON响应与异常处理

目录 1. 引言 2. JSON 1. 轻量级和可读性 2. 易于编写和解析 3. 自描述性 4. 支持多种数据类型 5. 平台无关性 6. 易于集成 7. 社区支持和标准化 3. 高效处理异常 综合案例 异常处理方式一 异常处理方式二 异常处理方式三 1. 引言 探讨Spring MVC中关键的JSON数据…...

那些配置服务器踩的坑

最近在配置内网&#xff0c;无外网的服务器&#xff0c;纯纯记录一下踩得坑&#xff0c;希望看到的人不要再走这条弯路。 ------------------------------------------------------------------------------------------------------------------------------- 任务&#xff…...

交换机端口镜像详解

交换机端口镜像是一种网络监控技术&#xff0c;它允许将一个或多个交换机端口的网络流量复制并重定向到另一个端口上&#xff0c;以便进行流量监测、分析和记录。通过端口镜像&#xff0c;管理员可以实时查看特定端口上的流量&#xff0c;以进行网络故障排查、安全审计和性能优…...

Spring源码分析(三) IOC 之 createBean()和doCreateBean()

a、在createBean中又是主要做了什么事情&#xff1f; 完成bean得创建&#xff0c;填充属性、循环依赖 、aop等一系列过程 1、createBean() 在createBean中主要干了3件事情 1、解析class -> resolveBeanClass() 2、验证及准备覆盖的方法,lookup-method replace-method -> …...

【鸿蒙(HarmonyOS)】UI开发的两种范式:ArkTS、JS(以登录界面开发为例进行对比)

文章目录 一、引言1、开发环境2、整体架构图 二、认识ArkUI1、基本概念2、开发范式&#xff08;附&#xff1a;案例&#xff09;&#xff08;1&#xff09;ArkTS&#xff08;2&#xff09;JS 三、附件 一、引言 1、开发环境 之后关于HarmonyOS技术的分享&#xff0c;将会持续使…...

Flink中的批和流

批处理的特点是有界、持久、大量&#xff0c;非常适合需要访问全部记录才能完成的计算工作&#xff0c;一般用于离线统计。 流处理的特点是无界、实时, 无需针对整个数据集执行操作&#xff0c;而是对通过系统传输的每个数据项执行操作&#xff0c;一般用于实时统计。 而在Flin…...

【LeetCode-中等题】150. 逆波兰表达式求值

文章目录 题目方法一&#xff1a;栈 题目 方法一&#xff1a;栈 class Solution {public int evalRPN(String[] tokens) {Deque<Integer> deque new LinkedList<>();String rpn "-*/";//符号集 用来判断扫描的是否为运算符int sum 0;for(int i 0 ; i…...

搭建ELK+Filebead+zookeeper+kafka实验

部署 Zookeeper 集群 准备 3 台服务器做 Zookeeper 集群 192.168.10.17 192.168.10.21 192.168.10.22 1.安装前准备 关闭防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 0 安装 JDK yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-…...

java专题练习(抢红包)

package 专题练习;import java.util.Random;public class grab_red_packet {/* 需求:直播抽奖,分别由{2,588,888,1000,10000}五个奖金,请用代码模拟抽奖,奖项出现顺序要随机且不重复打印效果:588元的奖金被抽出*///思路://1. 先用数组把奖金定义好//2. 用random方法给出随机数索…...

AVR 单片机 调试环境 JTAG MKII

注意 驱动 的厂家: 如果驱动备改变为其他厂家的驱动 就与 AVR Studio7不兼容 保证驱动选择正确是 能够使用硬件调试的关键 如果驱动不对&#xff0c;使用 USB驱动修改工具 修改 比如 UsbDriverTool.exe...

C++ - AVL树实现(下篇)- 调试小技巧

前言 本博客是 AVL树的下篇&#xff0c;上篇请看&#xff1a;C - AVL 树 介绍 和 实现 &#xff08;上篇&#xff09;_chihiro1122的博客-CSDN博客 上篇当中写插入操作&#xff0c;和其中涉及的 旋转等等细节&#xff0c;还有AVL树的大体框架。 调试小技巧 条件断点 在大项目…...

Mybatis懒加载

懒加载是什么&#xff1f; 按需加载所需内容&#xff0c;当调用到关联的数据时才与数据库交互否则不交互&#xff0c;能大大提高数据库性能&#xff0c;并不是所有场景下使用懒加载都能提高效率。 Mybatis懒加载&#xff1a;resultMap里面的association、collection有延迟加载功…...

DSOX3012A是德科技keysight DSOX3012A示波器

181/2461/8938是德科技DSOX3012A(安捷伦)示波器 是德科技DSOX3012A(安捷伦)是InfiniiVision 3000 X系列中的双通道型号。这款可升级示波器采用突破性技术设计&#xff0c;提供卓越的性能和功能。其独特的5仪器合一设计为相同的预算提供了更大的范围。 是德科技DSOX3012A示波器…...

基于网络表示学习的 新闻推荐算法研究与系统实现

摘要 第1章绪论 新闻推荐通常是利用用户的阅读行为和习惯、阅读选择和爱好等信息,为 用户推荐新闻内容。新闻推荐能够减少用户在数量庞大数据信息中获取信息的 时间消耗,从而能够缓解“信息过载[7]”的难题。以文本为内容的新闻,和商品、 电影、短视频等推荐系统相比,新闻推…...

<Altium Designer> 将.DSN文件导入并转换成SchDoc文件

目录 01 使用向导方式导入.DSN 02 消除Unique Identifiers Errors 03 文章总结 大家好&#xff0c;这里是程序员杰克。一名平平无奇的嵌入式软件工程师。 本文主要是总结和分享将OrCAD Capture画的原理图文件(.DSN)导入到Altium Designer&#xff0c;转换成对应的原理图文件…...

视频定格合璧,批量剪辑轻松插入图片

大家好&#xff01;想要将视频与图片完美融合吗&#xff1f;现在&#xff0c;我们为您推出一款强大的批量剪辑工具&#xff0c;让您能够轻松在图片中插入视频&#xff0c;让您的创作更加精彩动人&#xff01; 首先&#xff0c;第一步我们要进入媒体梦工厂主页面&#xff0c;并…...

【Tensorflow 2.12 电影推荐项目搭建】

Tensorflow 2.12 电影推荐项目搭建 学习笔记工具、环境创建项目项目配置安装相关python包召回模型实现排序模型实现实现电影推荐导入模块设置要推荐的用户召回推荐排序推荐推荐结果结尾学习笔记 Tensorflow 2.12 电影推荐项目搭建记录~ Tensorflow是谷歌开源的机器学习框架,可…...

python+opencv特征匹配算法

pythonopencv特征匹配算法 1.安装 pip install opencv-python pip install numpy2.算法明细 import cv2 import numpy as np# 读取两张图像 img1 cv2.imread(image1.jpg,0) # queryImage img2 cv2.imread(image2.jpg,0) # trainImage# 初始化SIFT对象 sift cv2.xfeatur…...

LaserGRBL:5分钟掌握开源激光雕刻控制软件的核心功能

LaserGRBL&#xff1a;5分钟掌握开源激光雕刻控制软件的核心功能 【免费下载链接】LaserGRBL Laser optimized GUI for GRBL 项目地址: https://gitcode.com/gh_mirrors/la/LaserGRBL LaserGRBL是一款专为GRBL控制器优化的开源激光雕刻控制软件&#xff0c;为Windows用户…...

别再死记硬背了!我用700多页图解八股文,帮你把Java面试考点画成故事

用视觉叙事重构Java面试&#xff1a;700页图解背后的认知科学实践 翻开任何一本Java面试指南&#xff0c;你大概率会看到密密麻麻的文字罗列——"JVM内存结构分为哪几部分&#xff1f;""Synchronized和ReentrantLock有什么区别&#xff1f;"这些被称为&quo…...

AI智能体开发新范式:用TDD工程化方法构建可靠LLM应用

1. 项目概述&#xff1a;当AI智能体遇上测试驱动开发最近在GitHub上看到一个挺有意思的项目&#xff0c;叫agent-skill-tdd。光看名字&#xff0c;就能嗅到一股“新老结合”的味道——一边是当下火热的AI智能体&#xff08;Agent&#xff09;&#xff0c;另一边是软件工程领域经…...

告别NuWriter!手把手教你用命令行打包新唐NUC980 SPI NAND完整系统镜像

新唐NUC980 SPI NAND量产化镜像构建实战指南 在嵌入式设备量产过程中&#xff0c;传统烧录方式往往成为效率瓶颈。当面对新唐NUC980这类基于SPI NAND的工控设备时&#xff0c;产线工程师常需要反复切换工具链、分步烧录不同组件&#xff0c;不仅耗时费力&#xff0c;还容易因人…...

ElevenLabs声音库调优秘技:如何用API+Prompt工程将TTS自然度提升67%(附2024最新声纹参数表)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs声音库资源推荐 ElevenLabs 提供了业界领先的高质量语音合成服务&#xff0c;其声音库&#xff08;Voice Library&#xff09;涵盖多语种、多风格的预训练语音模型&#xff0c;适用于播客、有…...

基于MCP协议构建AI智能体记忆系统:mnemo-mcp实战指南

1. 项目概述&#xff1a;一个为AI记忆而生的开源工具最近在折腾AI应用开发&#xff0c;特别是围绕大语言模型&#xff08;LLM&#xff09;构建智能体&#xff08;Agent&#xff09;时&#xff0c;一个绕不开的痛点就是“记忆”。模型本身没有持久化记忆&#xff0c;每次对话都是…...

HTML转Figma:连接网页开发与设计协作的桥梁

HTML转Figma&#xff1a;连接网页开发与设计协作的桥梁 【免费下载链接】figma-html Convert any website to editable Figma designs 项目地址: https://gitcode.com/gh_mirrors/fi/figma-html 在今天的数字产品开发流程中&#xff0c;设计和开发团队之间的协作常常面临…...

BilibiliDown:三步搞定B站无损音频提取,构建你的专属音乐库

BilibiliDown&#xff1a;三步搞定B站无损音频提取&#xff0c;构建你的专属音乐库 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.…...

从汽车到工控:手把手教你用TJA1050和SN65HVD230搞定不同电压域的CAN节点互联

从汽车到工控&#xff1a;手把手教你用TJA1050和SN65HVD230搞定不同电压域的CAN节点互联 在汽车电子与工业控制系统的融合设计中&#xff0c;工程师常面临一个典型挑战&#xff1a;如何将5V供电的汽车电子模块&#xff08;如TJA1050&#xff09;与3.3V供电的工业控制器&#xf…...

Vue绘图画布组件:零基础打造专业级绘图应用

Vue绘图画布组件&#xff1a;零基础打造专业级绘图应用 【免费下载链接】vue-drawing-canvas VueJS Component for drawing on canvas. 项目地址: https://gitcode.com/gh_mirrors/vu/vue-drawing-canvas vue-drawing-canvas 是一个功能强大的Vue.js画布绘图组件&#x…...