微軟出品,必屬精品。
C#和Java誰更好是壹個壹直存在的問題。怎麽說那,如果壹定要選擇壹個的話,我選擇C#,因為.NET平臺的架構是Java無法比擬的(能否最終實現,還要看微軟了)。
.NET架構:
.NET5的架構:
使用的IDE是MonoDevelop( / )。
Mono是最早的.NET開源實現,是Xamarin和Unity的基礎。在《C# 7.0本質論》壹書中。作者說: 目前Mono已被.NET Core 替代。不過對於開發應用程序影響不大。
思路很簡單,如果是文件的話,就停止遞歸。如果是目錄的話就遞歸執行。
運行結果:
用遞歸實現方法的時候常見的錯誤是在程序運行的時候發生 棧溢出 (stack overflow), 這通常是由於 無限遞歸 造成的。假如方法持續調用自身,永遠抵達不了 標誌遞歸結束的位置 ,就會發生無限遞歸。必須仔細檢查每個遞歸的實現,確保遞歸調用是 有限的而不是無限的 。
常應的遞歸模式:
在進行內核開發中,盡量不要用遞歸,因為內核的棧空間有限,而遞歸需要不斷創建新的棧,如果層次很深的話,就會導致棧空間很大,造成內核的棧空間不足。因此這裏給出非遞歸版本的實現,這裏基於的是BFS廣度優先搜索(BFS),同時添加了異常處理。
運行結果:
廣度優先搜索算法(Breadth-First-Search,縮寫為 BFS),是壹種利用隊列實現的搜索算法。簡單來說,其搜索過程和 “湖面丟進壹塊石頭激起層層漣漪” 類似。
深度優先搜索算法(Depth-First-Search,縮寫為 DFS),是壹種利用遞歸實現的搜索算法。簡單來說,其搜索過程和 “不撞南墻不回頭” 類似。
BFS 的重點在於隊列,而 DFS 的重點在於遞歸。這是它們的本質區別。
C#是目前微軟主推的語言,而中國即使像華為這樣的頂級公司,依然沒有壹門自己主推的語言。目前國產手機,國產操作系統這些很能激起人們的愛國情懷和購買欲望,但是這些所謂的國產系統,國產手機又有多少是真正國產的,大部分都是基於Linux內核來搞出來的,當然了,能做到這壹步也很不容易。
相較於國產系統和國產手機,國產語言貌似根本就沒有(易語言除外,非常依賴於Window操作系統的壹門語言),甚至這個概念很少被提及,個人感覺,語言是壹切的基礎,搞壹門語言的意義或許比搞壹個操作系統的意義更加重要。
當然了,目前主流的語言大部分都已經開源了,但是沒有壹門屬於自己國家的開發語言總感覺少點什麽。