Chisel3 - Scala語言專家 阿新 • • 發佈:2019-01-12 https://mp.weixin.qq.com/s/j8mt_qvwliKIKtlN6JcyqQ 介紹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) 提示及補全