Kotlin 中缀函数(infix)

使用 infix 修饰的函数,叫 中缀函数 。可 省去 .(), 直接 通过 名 调用。

比如,10 shl 2 位左移操作shl就是 中缀函数,等同于 10.shl(2)

声明格式

kotlin 复制代码
infix fun methodName(argName: String)

即:类成员函数 或 扩展函数,增加 infix 修饰即可。

中缀函数 声明要求:
  1. 函数 必须是类型的 成员函数扩展函数
  2. 有且仅有 一个参数
  3. 函数参数 不能是 可变长参数(vararg),也不能有 默认值。
Int 位操作源码

查看 Int 位操作 相关函数源码,可知 都是 中缀函数:

kotlin 复制代码
public class Int private constructor() : Number(), Comparable<Int> {

    public infix fun shl(bitCount: Int): Int

    public infix fun shr(bitCount: Int): Int

}

文档

相关推荐
玛卡巴卡ldf几秒前
【Springboot升级AI】(大模型部署)LangChain4j、会话记忆、隔离消失持久化问题、ollama、RAG知识库、Tools工具
java·开发语言·人工智能·spring boot·后端·springboot
zmzb0103几秒前
C++课后习题训练记录Day120
开发语言·c++
tjl521314_215 分钟前
01C++ 类定义与访问控制(封装)
java·开发语言·c++
九转成圣10 小时前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
SmartRadio10 小时前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
laowangpython10 小时前
Rust 入门:GitHub 热门内存安全编程语言
开发语言·其他·rust·github
我叫汪枫10 小时前
在后台管理系统中,如何递归和选择保留的思路来过滤菜单
开发语言·javascript·node.js·ecmascript
_.Switch10 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
软件技术NINI10 小时前
webkit简介及工作流程
开发语言·前端·javascript·udp·ecmascript·webkit·yarn
Brendan_00110 小时前
JavaScript的Stomp.over
开发语言·javascript·ecmascript