码迷,mamicode.com
首页 > 编程语言 > 详细

Chisel3 - Scala语言专家

时间:2019-01-12 00:18:50      阅读:433      评论:0      收藏:0      [点我收藏+]

标签:initial   int   oauth   doc   提醒   父类   去掉   变量   ice   

 
介绍Intellij IDEA安装Scala插件后,如何在阅读和编码两方面助益开发者。
 
 
1. 语言专家
 
Scala是一门多范式编程语言,在支持面向对象编程的同时,也支持函数式语法。再加上隐式规则和宏等特性,以及众多的语法糖。使得Scala的学习曲线异常陡峭。
 
除了语言规范、教程图书、网络资料之外,一个强大的能够智能提示补全、时时检查提醒的编辑器或者IDE,可以极大的提高学习速度和编码效率。
 
事实上,除了语言的父亲(father of Scala)、语言规范委员会、编译器实现团队之外,编辑器或IDE的开发者可能是对语言最为擅长的了。他们开发的编辑器或IDE相较于一般的初学者,也能被称作专家了。
 
现代化的IDE是相当智能和强大的,犹如一个贴身语言专家,为开发者保驾护航。
 
Intellij IDEA就是这样的一个IDE,当之无愧。
 
 
2. 注意事项
 
在介绍Intellij IDEA之前,首先列几点Scala编程注意事项:
 
1) 代码不只是要功能正确,还要用于沟通协同。所以代码要在功能正确的基础上,尽量的简单易懂;
 
2) 不要炫技:Scala是一门很优秀的语言,包含众多的语法糖。编写时以信达雅为要,不要在不必要的情况下,使用花哨的语法糖;
 
3) 不用宏:宏的代码较为艰涩,且宏编程是一个试验性的语言特性。除非必须,不要使用;
 
4) 慎用隐式规则:隐式规则是一个潘多拉魔盒,使代码难以理解;若必须使用,则不宜默认的导入,需要在使用的地方显式导入(import x.y.z.implicits._)。
 
 
3. 代码阅读
 
以Rocket-Chip源码为例。
 
1) 代码跟踪
 
a. 按住Ctrl,使用鼠标点击,可以跟踪各类定义,如类、方法、变量等;
 
b. 跟踪子类
 
点击左侧图标,如:
?技术分享图片?
 
点击之后,显示如下:
?技术分享图片?
 
c. 跟踪方法在哪些子类中实现
 
?技术分享图片?
 
点击后显示如下:
?技术分享图片?
 
 
d. 跟踪方法覆盖的父类方法定义
 
?技术分享图片?
 
点击后跳转至父类的方法:
?技术分享图片?
 
e. 查找使用之处
 
?技术分享图片?
 
?技术分享图片?
 
 
2) 代码提示
 
a. package与文件夹路径不一致
 
?技术分享图片?
 
按住快捷键Alt+Enter,会提示可以采取的措施,以修复这个提示:
?技术分享图片?
 
选中之后即可实施。
 
b. 优化建议:多余的花括号
 
?技术分享图片?
 
按住快捷键Alt+Enter,即可给出建议。使用Unwrap可以把多余的花括号去掉:
?技术分享图片?
 
c. 优化建议:提示带上返回值类型
 
?技术分享图片?
?技术分享图片?
 
d. 代码提示:查看代码类型
 
Scala代码可以省略变量类型,根据后面赋值的变量类型进行推断。
?技术分享图片?
 
Alt+Enter,
?技术分享图片?
 
Enter,
?技术分享图片?
 
 
e. 提示隐式宏调用
 
?技术分享图片?
 
f. 优化建议:map/foreach
 
看到过但没找到,所以不贴代码了。
 
这两个都是针对每个元素执行一个函数,只是一个有返回值,一个无返回值。
易于混用,这个也会提示到。
 
g. 优化建议:indices
 
?技术分享图片?
 
Alt+Enter,
?技术分享图片?
 
Enter,
?技术分享图片?
 
h. 优化建议:无用的import
 
?技术分享图片?
 
i. 优化建议:无用的括号
 
?技术分享图片?
 
j. 优化建议:无用的占位符
 
?技术分享图片?
 
 
 
4. 代码编写
 
1) 自动生成必须要实现的父类方法
 
?技术分享图片?
 
Enter,
?技术分享图片?
 
2) 选择覆盖或实现某个方法
 
?技术分享图片?
 
?技术分享图片?
 
?技术分享图片?
 
3) 提示及补全
 
?技术分享图片?
 
?技术分享图片?
 
 
 

Chisel3 - Scala语言专家

标签:initial   int   oauth   doc   提醒   父类   去掉   变量   ice   

原文地址:https://www.cnblogs.com/wjcdx/p/10258214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!