博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kotlin杂记之扩展函数和运算符重载
阅读量:3958 次
发布时间:2019-05-24

本文共 1140 字,大约阅读时间需要 3 分钟。

前言

该文是《第一行代码》第三版第5章Kotlin部分的笔记,方便记忆以及日后复习

扩展函数和运算符重载

一、扩展函数

(一)什么是扩展函数?

扩展函数表示即使在不修改某个类的源码的情况下,仍然可以打开这个类,向该类添加新的函数。

(二)语法结构

定义扩展函数的语法结构:

fun ClassName.methodName(param1: Int, param2: Int) : Int {	return 0}

相比于定义一个普通函数,定义扩展函数只需要在函数名的前面加上一个ClassName.的语法结构,就表示将该函数添加到指定类当中了。

(三)实例

我们为String类添加一个扩展函数,这个扩展函数可以统计字符串的字母数量。

我们新创建一个文件String.kt,一般来说扩展函数对文件名没有要求,但为了方便查找,建议与类名相同。
现在在String.kt文件中编写如下代码:

fun String.lettersCount(): Int {	var count = 0	for (char in this) {		if(char.isLetter()) {			count++;		}	}	return count;}

定义好了扩展函数之后,统计某个字符串中的字母数量只需要这样写:

val count = "ABCASCA#!@#".lettersCount()

二、运算符重载

  • 运算符重载的关键字是operator,只要在指定的函数的前面加上operator关键字,就可以实现运算符重载的功能
  • 不同运算符对应的重载函数也是不同的,比如加号运算符对应的是plus()

以加号为例,实现让两个对象相加的功能,语法结构如下:

class Obj {	operator fun plus(obj: Obj) : Obj {		// 处理相加的逻辑	}}
  • Kotlin允许我们对同一个运算符进行多重重载
class Money(val value: Int) {	operator fun plus(money: Money) : Money {		val sum = value + money.value		return Money(sum)	}	operator fun plus(newValue: Int): Money {		val sum = value + newValue		return Money(sum)	}}

调用:

val money1 = Money(5)val money2 = Money(10)val money3 = money1 + money2val money4 = money3 + 20println(money4.value)

转载地址:http://odtzi.baihongyu.com/

你可能感兴趣的文章
马云的精辟语录
查看>>
每一位Android开发者应该知道的Android体系架构和开发库
查看>>
次级贷!
查看>>
计算机科学反思录
查看>>
MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记
查看>>
计算机类期刊投稿心得 论文
查看>>
刚才想发一文章,显示 "csdn 文章中出现禁止的词语,系统不予接受。"
查看>>
常用正则表达式收集
查看>>
工作以后十不要
查看>>
十条网站盈利模式分析总结
查看>>
兰迪教授的最后一课 - 真正实现你的童年梦想
查看>>
七个受用一生的心理寓言
查看>>
iptables+squid透明代理+防火墙终极配置
查看>>
华尔街风暴的产生过程
查看>>
兼容性好的省市三级级联菜单
查看>>
五种能力支撑美好人生
查看>>
python超简单的web服务器
查看>>
代理模式、静态代理、动态代理、aop
查看>>
Struts1.x Spring2.x Hibernate3.x DWR2.x整合工具文档v1.00
查看>>
大型Web2.0站点构建技术初探
查看>>