Rocket - tilelink - toBools
2024-09-06 15:46:46
https://mp.weixin.qq.com/s/UGMH8EoaVcFkkQW-l4HLWg
分析toBools在Intellij中显示为红色的问题。
1. 问题
在TLArbiter中,对toBools的使用如下:
可以看到在Intellij中有错误:
a. toBools是红色的,鼠标悬停提示错误信息为:
b. 紧接着导致下面一行使用readys的地方也有错误提示:
toBools是定义了的,为什么这里提示找不到呢?
2. 分析
按住Ctrl鼠标单击,发现有两处定义:
分别如下:
第一个定义参数列表中没有参数;
第二个定义参数列表中都是隐式参数;
Scala语言支持省略空参数列表的括号。所以:
第一个定义可以省略括号,即:toBools() => toBools;
第二个定义隐式参数可以省略,进而再省略括号,即:toBools(sourceInfo, compileOptions) => toBools() => toBools;
这下混淆了,不知道调用的究竟是哪一个方法。
3. 解决
a. 不省略括号
既然省略括号会造成混淆,那就不省略括号。带括号而不传参,说明调用的是无参的方法。
这里不再提示错误。按住CTRL单击鼠标,定位到第一个定义处。
若想要调用第二个定义,就必须要传入原本隐式的参数了。
b. 改名字
把这两个方法改成不一样的名字即可。事实上,这里的错误来自于没有遵循命名习惯。
看其他定义:
第二个定义前面要加上前缀:“do_”。
也就是说第二个定义的名称应该改为:do_toBools。
c. 已修复
这个问题在新版本中已经修复,只是还没有发布。
修改方法为把第二个toBools改为do_toBools。并且增加了一套asBools实现,原来的toBools标记为废弃(deprecated)。
提交的日志为:
这里承认是一个拼写错误。
最新文章
- 【bzoj1231】[Usaco2008 Nov]mixup2 混乱的奶牛
- 【线段树区间合并】HDU1540-Tunnel Warfare
- oracle11g AUD$维护
- 编译boost
- JAVA中获取当前系统时间
- 【poj1010】 STAMPS
- jQuery进行DOM操作记录
- 在后台代码中引入XAML的方法
- 卸载AMH 5.0面板的具体办法
- 联合县城市,采用ajax,而使用ul模拟select下拉
- Spring 注解式Aop 入门
- js观察者模式与Model
- Mybatis在oracle批量更新
- Android Studio 中 Live Templates 的使用
- Ooui.Wasm:浏览器中的.NET
- Java中常见的排序方式-快速排序(升序)
- 手把手教你实现 Google 拓展插件(转自实验楼)
- springboot通过ssh通道连接mysql数据库
- BT5配置网络
- JZ2440 裸机驱动 第13章 LCD控制器(1)
热门文章
- P3983 赛斯石(双背包)
- 初识Java和JDK下载安装
- Jmeter5.2.1 三种参数化
- [hdu5402 Travelling Salesman Problem]YY
- 【HDU4991】树状数组
- Nginx下的location,upstream,rewrite 和 proxy_pass使用总计大全
- 排序算法:图解快速排序算法--不超过18行代码Python和JavaScript实现快速排序算法
- java ->;IO流_字符流
- Vuser发生器
- 「雕爷学编程」Arduino动手做(8)——湿度传感器模块