Kotlin 学习-方法和参数类型

/*** kotlin 的方法有三种* */fun main() { /*** 方法一* 1.普通类的成员方法申明与调用* (1)需要先构建出实例对象,才能访问成员方法* (2)实例对象的构建只需要在类名后面加上()* */Person().test() /*** 方法二:静态类里的方法都是静态方法* 静态类里的方法都是静态方法*    不需要构建出实例对象,可以通过类名直接访问静态方法* */val num = NumberUtil.double(2)println("num=$num")   /*** 方法三:当我们想在一个普通类,也就是class声明的类里面。想要定义一个静态方法的话* 不需要构建实例对象,可以通过类名,直接访问静态方法* */Person.test2()read(1,2)read(start = 2)read2(1,2, action = {//方法体的最后一行就是方法的返回值val result=1*2"括号内传递参数  read2"})read2(start = 1){"括号外传递参数 read2"}val append:String= append('1','2','3','4')println("append:$append")  /*** 当我们调用vararg方法时,我们可以一个接一个地传参,例如append('1,','2','r','d'),* 或者如果我们已经有一个数组并且希望将其所有内容传给该方法,我们使用延展(sread)操作符(在数组前面加*):* */val world= charArrayOf('1','2','r','d')val result= append('h','e','l','l','o',*world)println("sread_result:$result")}//普通类
class Person {//方法一fun test() {println("成员方法")}//方法二companion object {fun test2(){println("伴生类")}}
}/*** object修饰的类都是静态类* */
object NumberUtil {//方法三fun double(num: Int): Int {return num * 2}
}
/*** 方法中的参数* 参数类型
 * 1.默认参数* 2.具名参数:指定参数名称* 3.可变参数* 如果一个默认参数在一个默认值的参数之前,那么无默认值的参数,只能通过使用具明参数调用该方法来使用* 如:read(start=1) 仅仅只给start传值,使用默认值offset=0* */
fun read(offset:Int=0,start:Int){println("offset:$offset   start=$start")}
/*** * 如果最后一个参数是方法,那么它既可以作为具名参数在括号内传入,也可以在括号内传入* 第三个参数action:是一个方法* 如果参数的类型是(),说明它是一个方法,如action:()* 方法参数的返回值使用->:如果不需要返回值,使用Unit;如果需要放回Int,就使用Int,其他都这样类似** 可变参数的要求*   只有一个参数可以标注为vararg*   如果vararg参数不是最后一个参数,可以使用具名参数语法,给后面的参数的传递值* */
fun read2(offset:Int=0,start:Int,action:()->String){val ret=action()println("offset:$offset   start=$start  ret:$ret")}
/*** 可变数量的参数* 方法的参数(通常是最后一个)可以用vararg修饰标记* */
fun append(vararg  str:Char):String{val result = StringBuffer()for (char in str){result.append(char)}return  result.toString()
}

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

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

相关文章

头歌 | WPS文档基本操作

若为出现预期结果可私信我答疑 2025年4月9日 第1关:新建WPS文档和保存文档 在本地创建一个1.sh,内容写入echo 我的第一个WPS文档.docx创建成功点击工具栏 点击上传文件把刚刚创建的1.sh上传 点击图形化 点击workspace>userfiles, 复制上传的文件1.sh返回上一级…

使用docker 安装向量数据库Milvus

Miluvs 官网 www.milvus.io/ https://milvus.io/docs/zh/install_standalone-docker-compose-gpu.md 一、基本概念 向量数据库:Milvus是一款云原生向量数据库,它支持多种类型的向量,如浮点向量、二进制向量等,并且可以处理大规模…

ps 人像学习

视频: 一ps快捷键 1.1 创建图层 ctrlj 1.2 放大缩小图片的大小 按住alt 滚轮 1.3 移动图片 空格 左键 1.4 撤回 ctrlz 二 精修的第一步是去除斑点,瑕疵, 2.1 污点修复画笔工具 新建一个图层,点击污点修复工具进行修复…

数据结构第五版【李春葆】

​ 数据结构教程上机实验指导第5版(李春葆主编).pdf 数据结构教程(第5版)(李春葆).pdf 数据结构教程(第五版)课后习题参考答案(李春葆).pdf 数据结构教…

(二十三)安卓开发中数据存储之Room详解

在安卓开发中,Room 是一个强大的本地数据库解决方案,它是 Android Jetpack 的一部分,基于 SQLite 构建,提供了更高层次的抽象。Room 简化了数据库操作,减少了样板代码,同时支持与 LiveData 和 ViewModel 的…

[C++面试] 初始化相关面试点深究

一、入门 1、C中基础类型的初始化方式有哪些?请举例说明 ​默认初始化​ 对于全局变量和静态变量,基础类型(如int、float、double等)会被初始化为 0;而对于局部变量,其值是未定义的,包含随机…

网络安全之-信息收集

域名收集 域名注册信息 站长之家 https://whois.chinaz.com/ whois 查询的相关网站有:中国万网域名WHOIS信息查询地址: https://whois.aliyun.com/西部数码域名WHOIS信息查询地址: https://whois.west.cn/新网域名WHOIS信息查询地址: http://whois.xinnet.com/domain/whois/in…

Linux网络http与https

应用层协议HTTP 提示 因为现在大多数都是https,所以就用https来介绍http,https比http多了一个加密功能,不影响介绍http。 什么是http 虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的…

讲解贪心算法

贪心算法是一种常用的算法思想,其在解决问题时每一步都做出在当前状态下看起来最优的选择,从而希望最终能够获得全局最优解。C作为一种流行的编程语言,可以很好地应用于贪心算法的实现。下面我们来讲一篇关于C贪心算法的文章。 目录 贪心算法…

vue3中watch的使用示例

使用情况说明: 1、父组件中有个表格,点击表格行的修改基础信息,弹出修改对话框; 2、修改内容点击确认,发送请求,后端更新数据;不修改内容不发送请求; 3、可以连续修改&#xff1b…

Spring MVC 请求类型注解详解

Spring MVC 请求类型注解详解 1. 核心注解分类 Spring MVC 中的请求处理注解分为以下几类: 类别注解示例作用范围方法级注解RequestMapping, GetMapping 等方法级别参数级注解RequestParam, RequestBody方法参数模型/会话注解ModelAttribute, SessionAttributes方…

C#: DxF文件中Spline解析

以下是使用C#解析DXF文件中Spline(样条曲线)的完整代码示例,使用流行的netDxf库来处理DXF文件: 1. 安装netDxf库 首先通过NuGet安装netDxf库: Install-Package netDxf 2. 完整Spline解析代码 using System; using System.Collections.Ge…

【软考系统架构设计师】系统架构设计知识点

1、 从需求分析到软件设计之间的过渡过程称为软件架构。 软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成。 软件架构不仅指定了系统的组织结构和…

二.springBoot项目集成ElasticSearch及使用

二.springBoot项目集成ElasticSearch及使用 1.依赖引入2.ElasticSearch常见用法 1.依赖引入 <!--elasticsearch搜索引擎--> <!--高版本7.0后TransportClient已被淘汰&#xff0c;用rest-high-level-client代替--> <dependency><groupId>org.elasticse…

微服务多模块构建feign项目过程与一些报错(2025详细版)

目录 1.eureka-server的注意事项 2.eureka-feign的注意事项 3.多模块构建feign项目过程 3.1创建父项目 3.2创建子项目eureka-server 3.3创建子项目eureka-provider 3.4创建子项目eureka-feign 3.5运行 给个点赞谢谢 1.eureka-server的注意事项 eureka-server的yml文件…

第十一届 蓝桥杯 嵌入式 省赛

一、分析 本届的风格又变了一番&#xff0c;但是难度也降低了些。 又是考察了 PWM 和 ADC。 第八、九届也考察了 PWM。建议先复习这两届&#xff0c;再回来模拟。 LCD的显示也提了额外的要求。 1. 功能概述 电位器 R37 输出的模拟电压信号 PA6输出频率固定&#xff0c;占…

小试牛刀-抽奖程序

编写抽奖程序 需求&#xff1a;设计一个抽奖程序&#xff0c;点击抽奖按钮随机抽取一个名字作为中奖者 目标&#xff1a;了解项目结构&#xff0c;简单UI布局&#xff0c;属性方法、事件方法&#xff0c;程序运行及调试 界面原型 ​ 待抽奖&#xff1a; 点击抽奖按钮&#x…

代码随想录算法训练营day2(数组)

华子目录 长度最小的子数组思路 螺旋矩阵思路总结 长度最小的子数组 https://leetcode.cn/problems/minimum-size-subarray-sum/ 思路 使用滑动窗口&#xff0c;left表示滑动窗口的起始点&#xff0c;right表示滑动窗口的终点 class Solution:def minSubArrayLen(self, targ…

6.1 GitHub亿级数据采集实战:双通道架构+三级容灾设计,破解API限制与反爬难题

GitHub 项目数据获取功能设计与实现 关键词:GitHub API 集成、网页爬虫开发、数据存储设计、定时任务调度、异常处理机制 1. 数据获取架构设计 采用双通道数据采集策略,同时使用 GitHub 官方 API 和网页爬虫技术确保数据完整性: #mermaid-svg-XUg7xhHrzFAozG4J {font-fami…

设计模式(结构型)-桥接模式

目录 摘要 定义 类图 角色 具体实现 优缺点 优点 缺点 使用场景 使用案例 JDBC 和桥接模式 总结 摘要 在软件开发领域&#xff0c;随着系统规模和复杂性的不断攀升&#xff0c;如何设计出具有良好扩展性、灵活性以及可维护性的软件架构成为关键挑战。桥接模式作为一…