前情提要 走到 newproc1 函式的結尾。新的 goroutine 已經如子彈一般上膛了。 一路返回 newproc1 回傳之後會一路回到最初的 rt0_...
前情提要 昨日宣告重啟 Hello World 程式,但是是那些我們所寫的 main 函式以外的部份。目前追蹤到作業系統與架構相依的部份結束,何時會迎來 GO...
前情提要 昨日終於結束了 schedinit 部份,主要是追 gcinit 函式,還有從比較抽象的角度瀏覽了一些垃圾回收的機制。 退回一層 回到我們之前所在的...
昨天瞭解了切片的使用方式,但光會使用而不了解切片的原理,絕對會在未來吃一些不明所以的虧,所以我們立馬來了解一下切片到底從何而來以及怎麼運作! 切片 (slice...
這幾天我們都是透過電腦版的Line來做測試,但是如果是使用手機版的話,會發現當我們點擊Google OAuth的URL要進行認證授權的時候,雖然前面的步驟都一切...
昨天將結構 (struct) 完整的介紹完畢,今天就來介紹如何檢查型別。 在本次的鐵人賽曾多次提到 Go 語言是強型別的語言,也就是遇到函式引數型別和實際叫用型...
前情提要 昨日進入到 mstart 函式之中,可算是整個 bootstrap 的最後階段。在裡面走到 mstart1,也透過 gdb 觀察得知就是在這裡面執行...
生硬的結構 如果外面的struct裡面是包struct,在宣告出來了時候,裡面的struct是定死的,變數就是指定要宣告時的struct型態。 如下所示 //...
昨天我們學習了最基礎的用 var 宣告一個或多個變數 (variables) ,以及可以省略型別或是初始值,今天立馬學習用短變數宣告、一次宣告多個變數以及如何更...
昨天學習完 Go 語言中的核心型別,但若想要建立更複雜的資料,那就需要搭配複合型別,今天就先來介紹第一個複合型別- 陣列 (array) 。 今天我想要把水果分...
昨天介紹在 Go 語言中函式 (function) 的傳回值,那我們今天繼續學習參數不定的函式~~ 參數不定函式 參數不定函式(variadic functio...
前情提要 昨日提到除錯選項的 allocfreetrace,但若要觀察 scheduler 行為,hw 範例還是太單薄了一些。 schedinit ......
昨天介紹了在 Go 語言中的型別檢查,今天要介紹其實前面章節的範例也經常出現的函式 (function)。 Go 語言中的函式 (function) 函式 (f...
前情提要 昨日我們簡單路過 systemstack 函式之後開始了 newproc1 函式。 暫停回顧 P-M-G 關係 雖然在第 10 天時有簡單介紹註解中...
前情提要 昨日我們都在爬梳註解與其他資料,企圖從比較鳥瞰的角度去觀察排程器與 GO 的系統模型。 acquirem 和 releasem(在 runtime/...
昨天介紹到參數不定函式,今天立馬來繼續學習匿名函式~ 具名函式 目前為止我們的函式都是必須在套件層級宣告的 具名函式: func myFavorite() {...
昨天介紹了切片的內部運作及隱藏陣列的存在,今天會使用各種範例來複製切片,一起來看看用不同的複製方式與隱藏陣列的關聯吧! 複製一個跟本來切片指向不同隱藏陣列的切片...
前情提要 昨日我們走過 newproc1 函式的最開頭部份;順利的情況下,能夠取得一個新的 G。 使用 gdb 驗證 我們將斷點設在 runtime.newp...
前情提要 之前取得的 newg 狀態已經調整為可執行,而且也已經分配好 ID 了。 newproc1 的尾巴 if raceenabled {...
昨天介紹完切片 (slice) 不同的複製方式與隱藏陣列的關聯,今天繼續來介紹有點類似的映射表 (map) 吧! map 是什麼以及怎麼取得 map 內元素 G...
背景 Line應該是目前臺灣最主流的通訊軟體,不知道大家的使用習慣如何,但我相信應該很多人跟我一樣,習慣建一個or多個只有自己一個人的群組,然後有什麼資料就往自...
昨天了解在 Go 語言中函式 (function) 介紹及宣告函式,今天來了解如何呼叫函式及函式參數。 呼叫函式 當我們宣告好一個函式,要如何執行函式呢?那就是...
print import ("fmt") fmt.Println('hello') 宣告 變數 var variablename type...
昨天我們介紹了在 Go 語言中各種變數宣告與更改變數值的方式,但我們有了變數之後,會需要對變數做一些操作,於是乎這就是算符 (operators) 出場的好時機...
func()可回傳多個回傳值,如果不接回傳值,可以用_ func main() { arr := [15]int{1, 2, 3, 4, 5, 6,...
設定Lambda+API Gateway 接著就是要來設定AWS Lambda+API Gateway了~ 1.複製以下測試用的code,部屬一個簡單的LINE...
圖文好讀版連結 Project Layout in Go 剛入門任何一門程式語言開發的人, 應該大多都是參考各路大神們的專案或者公司的專案在學習模仿。 一開始印...
Learn Go 是在codecademy上的Go語言基礎課程,這週的主要內容在學習function的寫法,以及指標參數Learn Go in 12 Minut...
最後一天,我們來為Button增加對應的功能,目前有的按鈕有兩種,一種是[進入資料夾],一種是[設為上傳路徑]。 那我們就先從[進入資料夾]開始,我們要製作進入...
用 defer 延後執行函式 defer 中文是推遲的意思,而在函式裡執行 defer 顧名思義就是延遲函式執行的時間,當使用 defer 的函式可以等到父函式...