Kotlin使用UInt进行数组访问和常量
发布时间:2020-12-14 01:35:51 所属栏目:Windows 来源:网络整理
导读:无符号数据类型可能适合数组访问.通常索引都是无符号的.但目前我不能直接这样做.例如.这段代码. val foo = 1.toUInt()"foo"[foo] 无法编译: error: type mismatch: inferred type is UInt but Int was expected 处理这个问题的最佳方法是什么?当然,我能做
无符号数据类型可能适合数组访问.通常索引都是无符号的.但目前我不能直接这样做.例如.这段代码.
val foo = 1.toUInt() "foo"[foo] 无法编译: error: type mismatch: inferred type is UInt but Int was expected 处理这个问题的最佳方法是什么?当然,我能做到: val foo = 1.toUInt() "foo"[foo.toInt()] 但这在某种程度上是错误的.无论如何,UInt是一个内联类,无论如何都会被删除到Int – 所以我认为不应该这样做.有人看过kotlin / KEEP吗? const val foo = UInt(42) 和 const val foo = 42.toUInt() 42.toUI()失败并不是常量值 解决方法
除非/直到内置对此的支持,否则您可以轻松地自行添加.例如,对于标准数组:
operator fun <T> Array<T>.get(index: UInt) = this[index.toInt()] 而对于CharSequences(不是数组): operator fun CharSequence.get(index: UInt) = this[index.toInt()] 有了这个范围,你的“foo”[foo]工作正常! (如果您使用IntArray& c,还需要单独的重载.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- iis-7.5 – 使用集成管道模拟域用户
- windows-server-2012-r2 – CSV缓存在内存负载下的行为如何
- windows-installer – 有没有办法强制“随机”MSI进行单个用
- active-directory – 如何找出我所属的AD组?
- 为什么我不能在Windows 7上安装TortoiseGit 1.6.3.0?
- 调用非托管DLL时vshost32.exe崩溃
- 在Windows 10上安装流星
- Windows 8 ListView具有水平项目流程
- user-interface – win32 select edit on edit ctrl(textbo
- windows-server-2003 – 有没有办法在没有域控制器的情况下
推荐文章
站长推荐
- windows-server-2008 – 除了星期日之外,你能创建
- winforms – Windows窗体/ DatagridView屏幕闪烁
- 在64位系统上部署BDE的要点
- windows-phone-8 – windows phone 8弹出宽度和高
- Windows域服务器的要求
- windows – `RegisterDragDrop`返回S_OK,但没有调
- windows-server-2003 – 列出应用于Windows服务器
- Office Exchange 365更改OriginatingServer
- .net – 如何使用Mono.Cecil检查.pdb和.dll文件是
- Go在windows下执行命令行指令
热点阅读