文档章节

Kotlin教程学习-操作符,操作符重载

天命剑主
 天命剑主
发布于 2015/06/16 14:29
字数 435
阅读 355
收藏 1

Kotlin操作符的使用方法与其他语言差不多,最大的特点就在于infix function call(事实上infix function call并不是操作符的特性,而是函数的特性)和操作符重载.

可以看到在Kotlin中大部分的操作符都与一个函数相对应,之所以这样做,大概是为了进行操作符重载.

Kotlin官方文档中强调"=赋值"操作在Kotlin中不是操作符,换句话说类似于x = y = z这样的连续赋值并不被允许(甚至赋值操作也不能和常规的表达式混合写).

我们知道在C++语言里面操作符就是一个函数,在Kotlin中也是如此.

至于infix function call,目前来看,如果在类中定义了只包含一个参数的函数,比如Int.plus(Int)函数是在Int类中定义,而且只有一个参数,那么这样的函数就可以简写.val x = 1.plus(1)可以简写为val x = 1 plus 1

上面的代码运行结果如下:

至于操作符重载,如下:

运行结果如下:

操作符重载并不能增加新的操作符,也不能改变操作符的优先级和结合性.

操作符的结合性(左结合,右结合)与Java相同,然而操作符的优先级官方文档并未给出,目前来看和Java并不完全相同,这主要是因为Kotlin中操作符和Java中性质并不完全相同.


© 著作权归作者所有

共有 人打赏支持
天命剑主
粉丝 39
博文 16
码字总数 9621
作品 0
武汉
程序员
Kotlin语言中的那些冷门知识点

这些知识点可能你很少用,但在某些特殊场景中却很有用。今天,就让我们一起来盘点一下那些被我们忽略了的冷门知识点。Let's started... 别名 有时候一个变量或表达式太长,你希望用一个更短的...

欧阳锋
05/04
0
0
快速上手Kotlin

今天是新年上班的第一个周末,很多春节的想法想用文字表达出来,却总是感觉词穷墨尽,无法用语言准备地表达我的想法。我想,大约是迷失了太久,连温情的文字都抛弃了我。新的一年,我会用100...

欧阳锋
2017/02/12
0
0
Java 已老,Kotlin 或将取而代之!

点击上方“CSDN”,选择“置顶公众号” 关键时刻,第一时间送达! Java已经成为历史。它无法发展成现代语言,同时保证向后兼容性。但它为我们带来了最好的JVM生态系统,并引导了许多优秀语言...

CSDN
05/12
0
0
Kotlin学习(十七): 运算符重载

日本编程丛书-图片源于网络 在前面写了关于集合和范围的内容,里面包括了一点运算符重载的内容,在这里我们来详细了解运算符重载的知识,内容参考《Kotlin实战》(Kotlin in Action)。 什么...

叫我旺仔
2017/11/19
0
0
Kotlin学习(十六): 关键字与操作符(Keywords and Operators)

图片来源于网络 本文同步更新于旺仔的个人博客,访问可能有点慢,多刷新几次。 Kotlin中有一些常用的关键字和标识符,同时还有一些操作符和特殊符号,这些都是和Java有不一样的地方的,这里将...

叫我旺仔
2017/11/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

tomcat 设置虚拟路径

Tomcat无法管理<Tomcat安装目录>/webapps目录以外的Web应用程序 在server.xml中配置虚拟目录 <Context path="/imgDetail" docBase="/pictureServer/img/resource"/> 配置前访问图片路径:h......

west_coast
26分钟前
0
0
数据结构

wu

盼望明天
40分钟前
4
0
Bash脚本输入参数的使用

Bash脚本输入参数的使用 Bash脚本传入的参数,在脚本中以位置的形式进行访问,即 $n 。例如,$1 为执行脚本的第一个参数,$2 为执行脚本的第二个参数。另外Bash中还提供了一些其它的便捷操作...

小陶小陶
57分钟前
3
0
多线程场景下,触发OOM的线程是否会影响其他线程的工作

public static void main(String[] args) { Thread t1 = new Thread(new Runnable() { @Override public void run() { int i = 0;......

麦馍
今天
4
0
模拟Dubbo的zookeeper一致性Hash发现

接之前一篇<手写zookeeper来模拟dubbo的注册/发现>,使用一致性Hash来进行查找需要寻找的服务. Hash处理接口 public interface HashFunc { public Long hash(Object key);} 一致性Has...

算法之名
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部