• Scala


    https://mp.weixin.qq.com/s/zwrG1MfUzXwtik7jotpQsA

     
    介绍Intellij IDEA中的一个去除Scala语法糖的功能。
     
     
     
    1. 去除语法糖
     
    Scala包含了太多的语法糖,在实现了代码写法比较简洁的同时,也某种程度上降低了代码的可阅读性。
     
    比如变量类型推断。为了知道变量的类型,而不得不去阅读为该变量赋值的代码。为了知道方法的返回值类型,而不得不去看方法的实现。
     
    这个问题可以通过Intellij IDEA添加type annotation的功能实现:
    如下:
     
     
    今天又发现一个可以去除语法糖、更详实的展现代码的功能:Desugar Scala code。
     
    选中要去除语法糖的代码,右键即可呼出菜单:
     
    点击之后,会出现要去除哪些语法糖的选择界面:
     
    不做改变,直接点击OK:
     
    可以看到,代码的阅读性有了很大的提升:
    a. 添加了变量类型:val x: UInt
    b. 伴生对象的路径及方法:chisel3.Input.apply()
    c. 为了调用W方法,而把16进行隐式类型转换调用的方法:chisel3.fromIntToWidth(16)
    d. 调用伴生对象Input所传入的隐式参数:(chisel3.core.CompileOptions.materialize)
     
    所有的猫腻都现出原形。(看明白了就还原回去:Ctrl+Z)
     
     
    2.Functionality
     
    以chisel-tutorial中的Functionality类为例:
     
     
    3. 不足之处
     
     
     
    a. 多次执行结果不一致;
    b. 并不是总能去除成功;
     
     
    4. 例子2
     
     
     
    a. ":="为方法名,使用"."调用,并为参数添加括号:io.z.:=()()
    b. 添加隐式参数列表的两个参数:SourceInfo, CompileOptions;
     
     
    5. 例子3
     
    整体转换:
     
     
    不是很稳定,聊胜于无。
     
  • 相关阅读:
    你好,2021!
    庚子走,辛丑来,愿一切安好!
    花魂鸟魂总难留,鸟自无言花自羞
    熟悉的小胡同
    夜半听鼾声
    写在儿子22岁生日
    vue配置Azure Artifacts npm包源
    RabbitMQ出错:AMQP close-reason, initiated by Peer, code=530的解决办法
    .NET MVC存储图片到数据库的解决方案
    EF Core解决报错’EntityTypeBuilder未包含“ToTable”的定义‘的方法
  • 原文地址:https://www.cnblogs.com/wjcdx/p/10420862.html
Copyright © 2020-2023  润新知