make loop

This commit is contained in:
chai2010
2015-12-28 15:57:07 +08:00
parent 77148f84d4
commit ba7261d140
25 changed files with 44 additions and 44 deletions

View File

@@ -4,7 +4,7 @@ Go語言的設計包含了諸多安全策略限製了可能導致程序運行
對於無法靜態檢測到的錯誤,例如數組訪問越界或使用空指針,運行時動態檢測可以保證程序在遇到問題的時候立卽終止併打印相關的錯誤信息。自動內存管理(垃圾內存自動迴收)可以消除大部分野指針和內存洩漏相關的問題。
Go語言的實現刻意隱藏了很多底層細節。我們無法知道一個結構體眞實的內存布局也無法取一個運行時函數對應的機器碼也無法知道當前的goroutine是運行在哪個操作繫統線程之上。事實上Go語言的調度器會自己決定是否需要將某個goroutine從一個操作繫統線程轉移到另一個操作繫統線程。一個指向變量的指針也併沒有展示變量眞實的地址。因爲垃圾迴收器可能會根據需要移動變量的內存位置當然變量對應的地址也會被自動更新。
Go語言的實現刻意隱藏了很多底層細節。我們無法知道一個結構體眞實的內存布局也無法取一個運行時函數對應的機器碼也無法知道當前的goroutine是運行在哪個操作繫統線程之上。事實上Go語言的調度器會自己決定是否需要將某個goroutine從一個操作繫統線程轉移到另一個操作繫統線程。一個指向變量的指針也併沒有展示變量眞實的地址。因爲垃圾迴收器可能會根據需要移動變量的內存位置當然變量對應的地址也會被自動更新。
總的來説Go語言的這些特性使得Go程序相比較低級的C語言來説更容易預測和理解程序也不容易崩潰。通過隱藏底層的實現細節也使得Go語言編寫的程序具有高度的可移植性因爲語言的語義在很大程度上是獨立於任何編譯器實現、操作繫統和CPU繫統結構的當然也不是完全絶對獨立例如int等類型就依賴於CPU機器字的大小某些表達式求值的具體順序還有編譯器實現的一些額外的限製等