Scala 如何调试隐式转换--隐式转换代码的显示展示
方法1
在需要隐式转换的地方,把需要的参数显示的写出。
略
方法2,查看编译代码
在terminal中 利用 scalac -Xprint:typer xxx.scala方法打印添加了隐式值的代码示例。
对于复杂的工程来说,直接跑到terminal执行 scalac -Xprint:typer xxx.scala会报很多库不存在的错误。
BasicTest.scala:5: error: object scalatest is not a member of package org
import org.scalatest.funsuite ^
BasicTest.scala:6: error: object apache is not a member of package org
import org.apache.log4j.Logger ^
BasicTest.scala:7: error: object json4s is not a member of package org
import org.json4s._ ^
BasicTest.scala:8: error: object json4s is not a member of package org
import org.json4s.JsonDSL._
可在idea的设置中,找到如下配置,写入-Xprint:typer

再到要调试的文件页面,进行编译(快捷键Ctrl+Shift+F9)。然后编译结果就会打印,比如我的如下代码:
test("json字段覆盖测试"){var json = ("name" -> "joe") ~ ("age" -> 35)LOGGER.info(compact(render(json)))json ~ ("age" -> 38)LOGGER.info(compact(render(json)))var json2=parse("{\"name\":\"joe\",\"age\":35}")json2 = json2 merge render("height",175)}
编译输出:
BasicTest.this.test("json�ֶθ���")({var json: org.json4s.JsonAST.JObject = org.json4s.JsonDSL.pair2Assoc[String](scala.Predef.ArrowAssoc[String]("name").->[String]("joe"))({((x: String) => org.json4s.JsonDSL.string2jvalue(x))
}).~[Int](scala.Predef.ArrowAssoc[String]("age").->[Int](35))({((x: String) => org.json4s.JsonDSL.string2jvalue(x))}, {((x: Int) => org.json4s.JsonDSL.int2jvalue(x))});BasicTest.this.LOGGER.info(org.json4s.jackson.JsonMethods.compact({<artifact> val x$1: org.json4s.JsonAST.JObject = json;<artifact> val x$2: org.json4s.Formats = org.json4s.jackson.JsonMethods.render$default$2(x$1);org.json4s.jackson.JsonMethods.render(x$1)(x$2)}));org.json4s.JsonDSL.jobject2assoc(json).~(org.json4s.JsonDSL.pair2jvalue[Int](scala.Predef.ArrowAssoc[String]("age").->[Int](38))({((x: Int) => org.json4s.JsonDSL.int2jvalue(x))}));BasicTest.this.LOGGER.info(org.json4s.jackson.JsonMethods.compact({<artifact> val x$3: org.json4s.JsonAST.JObject = json;<artifact> val x$4: org.json4s.Formats = org.json4s.jackson.JsonMethods.render$default$2(x$3);org.json4s.jackson.JsonMethods.render(x$3)(x$4)}));var json2: org.json4s.JValue = org.json4s.jackson.JsonMethods.parse(org.json4s.`package`.string2JsonInput("{\"name\":\"joe\",\"age\":35}"), org.json4s.jackson.JsonMethods.parse$default$2, org.json4s.jackson.JsonMethods.parse$default$3);json2 = JsonAST.this.JValue.j2m[org.json4s.JValue](json2).merge[org.json4s.JValue, org.json4s.JsonAST.JValue]({<artifact> val x$5: org.json4s.JsonAST.JObject = org.json4s.JsonDSL.pair2jvalue[Int](scala.Tuple2.apply[String, Int]("height", 175))({((x: Int) => org.json4s.JsonDSL.int2jvalue(x))});<artifact> val x$6: org.json4s.Formats = org.json4s.jackson.JsonMethods.render$default$2(x$5);org.json4s.jackson.JsonMethods.render(x$5)(x$6)})(JsonAST.this.JValue.jjj[org.json4s.JValue, org.json4s.JValue])})((Position.apply("BasicTest.scala", "Please set the environment variable SCALACTIC_FILL_FILE_PATHNAMES to yes at compile time to enable this feature.", 27): org.scalactic.source.Position))}
相关文章:
Scala 如何调试隐式转换--隐式转换代码的显示展示
方法1 在需要隐式转换的地方,把需要的参数显示的写出。 略方法2,查看编译代码 在terminal中 利用 scalac -Xprint:typer xxx.scala方法打印添加了隐式值的代码示例。 对于复杂的工程来说,直接跑到terminal执行 scalac -Xprint:typer xxx.…...
Rust交叉编译简述 —— Arm
使用系统:WSL2 —— Kali(Microsoft Store) 命令列表 rustup target list # 当前官方支持的构建目标架构列表 rustup target add aarch64-unknown-linux-gnu # 添加目标架构sudo apt-get install gcc-13-aarch64-linux-gnu gcc-13-aarch64-linux-gnu # 下载目标工具…...
算法与数据结构(二十三)动态规划设计:最长递增子序列
注:此文只在个人总结 labuladong 动态规划框架,仅限于学习交流,版权归原作者所有; 也许有读者看了前文 动态规划详解,学会了动态规划的套路:找到了问题的「状态」,明确了 dp 数组/函数的含义&a…...
相机的位姿在地固坐标系ECEF和ENU坐标系的转换
在地球科学和导航领域,通常使用地心地固坐标系(ECEF,Earth-Centered, Earth-Fixed)和东北天坐标系(ENU,East-North-Up)来描述地球上的位置和姿态。如下图所示: 地心地固坐标ecef和…...
RFID技术助力汽车零配件装配产线,提升效率与准确性
随着科技的不断发展,越来越多的自动化设备被应用到汽车零配件装配产线中。其中,射频识别(Radio Frequency Identification,简称RFID)技术凭借其独特的优势,已经成为了这一领域的重要技术之一。本文将介绍RF…...
应用高分辨率 GAN 对扰动文档图像去扭曲的深度Python实践
1. 引言 随着技术的不断发展,图像处理在各种场景中的应用也变得越来越广泛。高分辨率 GAN (Generative Adversarial Network) 是近年来图像处理领域的热点技术,它能够生成极高分辨率的图像,与此同时,它也可以用于各种修复和增强任…...
【BASH】回顾与知识点梳理(二十六)
【BASH】回顾与知识点梳理 二十六 二十六. 二十一至二十五章知识点总结及练习26.1 总结26.2 模拟26.3 简答题 该系列目录 --> 【BASH】回顾与知识点梳理(目录) 二十六. 二十一至二十五章知识点总结及练习 26.1 总结 Linux 操作系统上面,…...
React下载文件的两种方式
React下载文件的两种方式 - 代码先锋网 不知道有用没用看着挺整齐 没试过 1、GET类型下载 download url > {const eleLink document.createElement(a);eleLink.style.display none;// eleLink.target "_blank"eleLink.href url;// eleLink.href record;d…...
python入门知识:分支结构
前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 1.内容导图 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ python资料、视频教程、代码、插件安装教程等我都准备好了,直接在文末名片自…...
DNS协议及其工作原理
DNS是域名系统(Domain Name System)的缩写,它是一种用于将域名转换为IP地址的分布式数据库系统。它是因特网的基石,能够使人们通过域名方便地访问互联网,而无需记住复杂的IP地址。 DNS的历史可以追溯到1983年…...
调用被fishhook的原函数
OC类如果通过runtime被hook了,可以通过逆序遍历方法列表的方式调用原方法。 那系统库的C函数被fish hook了该怎么办呢? 原理和OC类异曲同工,即通过系统函数dlopen()获取动态库,以动态库为参数通过系统函数dlsym()即可获取目标系统…...
java语言B/S架构云HIS医院信息系统源码【springboot】
医院云HIS全称为基于云计算的医疗卫生信息系统( Cloud- Based Healthcare Information System),是运用云计算、大数据、物联网等新兴信息技术,按照现代医疗卫生管理要求,在一定区域范围内以数字化形式提供医疗卫生行业数据收集、存储、传递、…...
go文件基本操作
一、文件读操作 文件内容如下: 水陆草木之花,可爱者甚蕃。 晋陶渊明独爱菊。自李唐来,世人甚爱牡丹。 予独爱莲之出淤泥而不染,濯清涟而不妖,中通外直,不蔓不枝,香远益清,亭亭净植…...
每日一学——应用层
以下是一份关于应用层协议的学习资料: DNS (Domain Name System):DNS是互联网上最常用的应用层协议之一,它将域名转换为对应的IP地址。你可以了解DNS的工作原理、域名解析过程和常见的DNS记录类型。 DHCP (Dynamic Host Configuration Proto…...
blender的快捷键记录
按键作用备注R旋转物体移动、旋转或缩放物体时,按下X、Y或Z键:按X、Y或Z轴方向移动、旋转或缩放S缩放物体G移动物体TAB键切换为编辑模式CTRL A弹出应用菜单物体模式旋转缩放后应用旋转与缩放,再进入编辑模式SHIFT 鼠标右键移动游标位置SHIF…...
3D- vista:预训练的3D视觉和文本对齐Transformer
论文:https://arxiv.org/abs/2308.04352 代码: GitHub - 3d-vista/3D-VisTA: Official implementation of ICCV 2023 paper "3D-VisTA: Pre-trained Transformer for 3D Vision and Text Alignment" 摘要 三维视觉语言基础(3D- vl)是一个新兴领域&…...
SAP ABAP 直接把内表转换成PDF格式(smartform的打印函数输出OTF格式数据)
直接上代码: REPORT zcycle055.DATA: lt_tab TYPE TABLE OF zpps001. DATA: ls_tab TYPE zpps001.ls_tab-werks 1001. ls_tab-gamng 150.00. ls_tab-gstrp 20201202. ls_tab-aufnr 000010000246. ls_tab-auart 标准生产. ls_tab-gltrp 20201205. ls_tab-matn…...
侯捷 C++ part2 兼谈对象模型笔记——7 reference、const、new/delete
7 reference、const、new/delete 7.1 reference x 是整数,占4字节;p 是指针占4字节(32位);r 代表x,那么r也是整数,占4字节 int x 0; int* p &x; // 地址和指针是互通的 int& r x;…...
C++学习笔记总结练习:primer 学习日志
文章目录 针对自己的引言学习内容c语言基础知识1.为什么要声明变量2.cout ,cin3.c 不容许一个函数定义嵌套到另一个函数的定义中。4.编译指令using5.c基本类型长度6.在定义常量时尽可能使用const 关键字而不用#define9.前缀递增符与后缀递增符的区别10.c中的cctype库11.c 中的s…...
发布一个开源的新闻api(整理后就开源)
目录 说明: 基础说明 其他说明: 通用接口: 登录: 注册: 更改密码(需要token) 更换头像(需要token) 获取用户列表(需要token): 上传文件(5000端口): 获取文件(5000端口)源码文件,db文件均不能获取: 验证token(需要token): 获取系统时间: 文件…...
储能变流器双模式切换避坑指南:VF控制与PQ控制实战解析
储能变流器双模式切换实战手册:从原理到避坑全解析 引言:为什么双模式切换是储能系统的技术高地? 去年参与某大型光储项目时,我们团队在系统验收前72小时遭遇了令人窒息的场景——每当微网从并网切换到孤岛模式时,关键…...
HarmonyOS文件流操作指南:用ArkTS实现高效大文件传输与哈希校验
HarmonyOS文件流操作实战:ArkTS实现大文件传输与完整性校验 在移动应用开发中,文件操作是基础但至关重要的功能。当应用需要处理大型媒体文件、数据库备份或批量数据交换时,传统的文件IO方式往往力不从心。HarmonyOS提供的流式文件操作接口&a…...
如何通过手机号快速找回QQ账号:3分钟完成的终极指南
如何通过手机号快速找回QQ账号:3分钟完成的终极指南 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 还在为忘记QQ账号而烦恼吗?每次需要验证好友身份时都要翻遍通讯录?现在,通过phone2…...
Matlab实战:5种方法可视化MIMO/SISO信道容量差异(附完整代码)
Matlab实战:5种方法可视化MIMO/SISO信道容量差异(附完整代码) 无线通信系统的性能评估离不开对信道容量的深入理解。对于刚接触多天线系统的学习者来说,如何直观比较不同天线配置下的性能差异是一个常见痛点。本文将用Matlab带你探…...
【C++11 右值引用超详解】从原理到实战:移动语义 /forward/emplace 彻底吃透
前言在 C98 时代,我们只知道 “左值” 和 “右值”,但随着程序复杂度提升,无谓的拷贝问题越来越突出 —— 函数返回对象、容器插入元素、临时对象销毁,大量拷贝操作严重拖慢程序性能。C11 为了解决这个痛点,引入了右值…...
造相-Z-Image-Turbo亚洲美女LoRA应用场景:短视频封面/公众号配图/营销素材生成
造相-Z-Image-Turbo亚洲美女LoRA应用场景:短视频封面/公众号配图/营销素材生成 1. 引言:为什么你需要这个AI图片生成工具 如果你正在为这些事头疼: 每天要制作大量短视频封面,但设计耗时又费力公众号文章找不到合适的配图&…...
HDLC(高级数据链路控制):从帧结构解析到C语言模拟实现
1. HDLC协议基础:从比特流到可靠传输 第一次接触HDLC协议时,我盯着那串01111110的标志位发了半天呆——这不就是个简单的比特序列吗?怎么就能成为整个协议的基础?后来在调试卫星通信模块时才发现,正是这个看似简单的设…...
OptiScaler终极配置指南:解锁游戏画质提升的7个关键技术
OptiScaler终极配置指南:解锁游戏画质提升的7个关键技术 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler OptiScaler是一…...
Pipfile vs requirements.txt:10个关键差异对比分析
Pipfile vs requirements.txt:10个关键差异对比分析 【免费下载链接】pipfile 项目地址: https://gitcode.com/gh_mirrors/pi/pipfile 在Python开发中,依赖管理是项目成功的关键环节。Pipfile和requirements.txt作为两种主流的依赖管理方式&…...
Windows PDF处理终极指南:Poppler完整工具包快速入门
Windows PDF处理终极指南:Poppler完整工具包快速入门 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 还在为Windows平台上的PDF处理工具…...
