Kotlin扩展函数和运算符重载

扩展函数

fun String.lettersCount():Int{
    var count = 0
    for(i in this){
        if(i.isLetter())
            count++
    }
    return count
}
fun main(){
    val str:String = "12we"
    println(str.lettersCount())
}

相当于直接将方法写在类里面。函数体内可以直接使用this而不用传参。

运算符重载

class Money(var yuan:Int,var fen:Int){
    operator fun plus(money: Money): Money {
        return Money(yuan+money.yuan,fen+money.fen)
    }
    operator fun plus(Yuan:Int):Money {
        return Money(yuan+Yuan,fen)
    }
}

fun main(){
    var money:Money = Money(1,1)
    var money2:Money = Money(2,2)
    println((money2+money).yuan)
    println((money2+money).fen)
    println((money2+1).yuan)
}

operator和plus是不能变的,plus表示“+”

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Apifox:API 接口自动化测试完全指南

01 前言 这是一篇关于 Apifox 的接口自动化测试教程。相信你已经对 Apifox 有所了解:“集 API 文档、API 调试、API Mock、API 自动化测试,更先进的 API 设计/开发/测试工具”。 笔者是后端开发,因此这篇教程关注的是 API 自动化测试&#…

程序在银河麒麟系统下实现开机自启及创建桌面快捷方式

目录 1. 机器环境说明 2. 程序开机自启动设置 2.桌面快捷方式设置 3. 附加说明 1. 机器环境说明 机器安装的银河麒麟操作系统属性如下: 2. 程序开机自启动设置 第1步:编写一个脚本,用于自动化启动,为便于后文描述,该脚本名称…

100m/s高速轧制钢材 八轴测径仪检测毫无压力

关键词:八轴测径仪,在线测径仪,钢材测径仪,高速轧制 随着技术的提升,钢材的生产速度越来越快,一些高速生产的钢材,生产速度甚至达到了100m/s,这是一个非常快的速度。 如果汽车以120公里/小时的速度行驶,那么…

IDM Internet Download Manager 无法注册激活/注册按钮无法点击

Internet Download Manager 6.43破解版是一款功能强大的下载管理软件,这款软件能够帮助用户轻松高效地下载各种文件类型,无论你是想下载图片,视频,音乐,文档或是软件安装包,这款软件都能够帮你快速,稳定的下载,并且还支持多种线程下载和断点续传,很够很大程度的节省用户的时间和…

有什么操作简单的副业或兼职呢?

以下是操作简单的副业或兼职 1. 网络兼职 可以在网上找一些兼职工作,如网络营销、客服、文案撰写等,只需要有一台电脑和网络连接即可。 2. 手机任务 可以用手机做做致米宝库的任务,一天有一百多块钱,还可以电脑学习项目资源&am…

随易周刊第006期 - 云梦秦简

📢 随易周刊介绍 这是一个由 前端之虎陈随易 维护的周刊,将会分享笔者一周内的所见所闻。 写一篇周刊 搜集整理发布 需要数天,请尊重笔者的成果,可任意转载,但不要篡改内容。 如果你觉得周刊不错,可以给…

双向RNN和双向LSTM

双向RNN和双向LSTM 一、双向循环神经网络BiRNN 1、为什么要用BiRNN 双向RNN,即可以从过去的时间点获取记忆,又可以从未来的时间点获取信息,也就是说具有以下两个特点: 捕捉前后文信息:传统的单向 RNN 只能利用先前的上下文信息…

Audio Hijack for Mac 激活版:音频录制与处理软件

Audio Hijack for Mac,让您的音频创作更加高效、便捷。它支持多种音频格式的录制和导出,包括MP3、AAC、WAV等,让您的音频作品具有更广泛的兼容性。同时,软件界面简洁明了,操作流畅自然,即使您是初学者也能快…

EasyCVR智慧校园建设中的关键技术:视频汇聚智能管理系统应用

一、引言 随着信息技术的迅猛发展,智慧校园作为教育信息化建设的重要组成部分,对于提升校园安全、教学效率和管理水平具有重要意义。本文旨在介绍智慧校园视频管理系统的架构设计,为构建高效、智能的校园视频监控系统提供参考。 二、系统整…

【嵌入式开发】Arduino人机界面及接口技术:独立按键接口,矩阵按键接口,模拟量按键接口(基础知识介绍)

“生活总是让我们遍体鳞伤,但到后来,那些受伤的地方一定会变成我们最强壮的地方。” 🎯作者主页: 追光者♂🔥 🌸个人简介: 📝[1] CSDN 博客专家📝 🏆[2] 人工智能领域优质创作者🏆 🌟[3] 2022年度博客之星人工智能领域TOP4🌟 🌿[4] …

PCIE协议-2-事务层规范-Virtual Channel (VC) Mechanism

2.5 虚拟通道(VC)机制 虚拟通道(VC)机制提供了对可以在整个结构中传输使用TC(流量类别)标签区分的流量的支持。VC的基础是独立的结构资源(队列/缓冲区及其相关的控制逻辑)。这些资源…

遥感数据集制作(Potsdam数据集为例):TIF图像转JPG,TIF标签转PNG,图像重叠裁剪

文章目录 TIF图像转JPGTIF标签转PNG图像重叠裁剪图像重命名数据集转COCO格式数据集转VOC格式 遥感图像不同于一般的自然图像,由于波段数量、图像位深度等原因,TIF图像数据不能使用简单的格式转换方法。本文以Potsdam数据集为例,制作能够直接用…

信创电脑|暴雨新增兆芯KX-7000处理器版本

IT世界 5 月 15 日消息,暴雨公司信创家族新上架了一款搭载兆芯KX-7000系列处理器、摩尔线程8GB 显卡、16G DDR5 内存以及 512G SSD 的新配置台式电脑主机。 兆芯 KX-7000 处理器采用开先的 8 核 Chiplet互联架构,最高频率3.7 GHz,拥有 32MB 的…

2024最新软件测试【测试理论+ 接口测试】面试题(内附答案)

一、测试理论 3.1 你们原来项目的测试流程是怎么样的? 我们的测试流程主要有三个阶段:需求了解分析、测试准备、测试执行。 1、需求了解分析阶段 我们的 SE 会把需求文档给我们自己先去了解一到两天这样,之后我们会有一个需求澄清会议, …

干什么副业好呢?

选择适合自己的副业可以根据个人的兴趣、技能和时间来决定。以下是一些常见的副业选择 1. 在线销售 可以在电商平台上开设自己的网店,销售自己感兴趣的产品,如手工艺品、服装、配饰等。 2. 做任务 网上我还在做的致米宝库,一个月有个一千多…

shiro_attack工具-shiro反序列化漏洞的快速检测和利用

shiro反序列化漏洞的快速检测和利用 前言 今天分享一个好用的渗透测试工具,主要是针对shiro框架漏洞的,它可以自动的爆破shiro密钥,同时可以写入大马,本人实战中觉得很好用!!! 工具名称 shi…

自学VBA 设置单元格文字格式 笔记

一.设定对应单元格对应需要显示的格式 Cells(1, 1).Font.Size 18 字体大小 Cells(1, 2).Font.Color RGB(255, 0, 0) 字体颜色 Cells(1, 3).Font.Name "黑体" 字体类型 Cells(1, 4).Font.Italic True 字体斜体 Cells(1, 5).Font.FontStyle "BOLD"…

哈夫曼编码的应用

数据结构与算法课的一个简单实验,记录一下,以供参考。 文章目录 要求测试样例统计字母出现次数建立哈夫曼树对字符编码对原文进行编码译码 要求 输入一段100—200字的英文短文,存入一文件a中。统计短文出现的字母个数n及每个字母的出现次数…

stm32ADC注入通道使用笔记(以STM32F407 为例)

ADC_JDR1 存放的是第一次转换的数据 ADC_JDR2 存放的是第二次转换的数据 ADC_JDR3 存放的是第三次转换的数据 ADC_JDR4 存放的是第四次转换的数据 1.当 JL 0(定序器中有 1 次注入转换)时,ADC 将仅转换 JSQ4[4:0] 通道。值存入ADC_JDR1中…

表现层设计模式_1.MVC模式

1.MVC模式三个核心模块 MVC是一种目前广泛流行的软件设计模式。近年来,随着Java EE的成熟,MVC成为了Java EE平台上推荐的一种设计模式。MVC强制性地把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,形成了控制器…