介面(interface)跟一般 Java 所熟知的介面意義是一樣的:定義實體(instance)的行為。 定義與實作 介面定義方法很簡單,只要定義傳入與傳出就...
我們在重構 Name Provider 有提到,指令必須也要加參數,才有辦法傳給 Provider 產生對應的結果。 除此之外還有個需求:參考 Faker ,我...
指令套件 github.com/urfave/cli 算蠻好上手的。雖然好用,但似乎其他套件也不錯,如 Cobra 等。 目前 Command 實際處理任務的程...
前面 25 天,我們已經成功寫出了一個 CLI App 以及 Web App ,包括交付與佈署都有實作,這次鐵人賽主題的基本要求已經算達標了。 剩下五天的目標將...
做完交付後,下一個目標就是要做佈署了!不過我們佈署可以做簡單一點,在 Docker 上能跑就行了! 最後期望的結果是,只要機器有 Docker Daemon ,...
截至目前為止,應用程式該有基本功能都已經完備了,再來就是最後一哩路了--交付。 分析 交付前必須要經過建置(Build)的過程,不過畢竟只是 side proj...
因為參加的是 Modern Web 主題,不管怎樣,還是跟 Web 掛勾一下好了。 今天的主題是如何起一個 Web Server 。 分析 Go 本身即有內帶一...
昨天把網頁載好,不過裡面的資料似乎很難處理。後來有找到另一個 API : https://www.moedict.tw/a/字.json 它會回傳 JSON...
中國字非常深奧,有些字的含意,有時候並不是那麼清楚。還好網路上都能查得到這些資訊。 今天要來做如何把查出來的網頁資訊抓下來,也就是常見的 HTTP 協定功能。...
昨天已經成功把檔案載入變成 []byte 型態,今天要來讀 YAML 檔了。 分析 昨天有提到會使用 go-yaml 解析 YAML 資料,資料格式參考 Fak...
文字清單如果都寫死在程式裡的話,擴充性就太差了,預期它應該要可以從檔案抓出文字清單。 分析 基本的檔案操作應該不大會有問題,要思考的會是,該要用什麼樣的格式來存...
如果要產生假資料的話,亂數產生器是必要的。 今天先建立一個中文字的資料結構,然後再由 Go 產生亂數來選擇中文字,最後再經由 Command 輸出。 分析 首先...
在開始正式寫假文產生器前,我們先來看看哪些子命令和參數是需要定義的。 分析 找了一下套件說明,看起來只要把這個值代入 Command 結構的 slice 即可有...
學一個程式語言,最快的學法就是直接從實作中學。從今天開始要進入應用程式實作階段了! 最終想做的應用程式為:姓名產生器。 簡單介紹:透過應用程式可以產生姓名,並可...
昨天學完怎麼在結構上加方法後,它就很像在設計物件導向程式了。今天來看看它怎麼實作繼承。 先把昨天最後的程式搬一點過來: package main import...
結構可以定義同類型的資料,而同類型的資料通常又會有同類型的行為。因為 Go 有 Anonymous Function ,有寫過 Javascript 可能第一...
struct 是定義資料的集合,跟物件很像,也是把資料集合在一包。 定義 struct 可以使用 type 關鍵字定義,開頭的大小寫跟函式一樣,會影響能見度;內...
昨天在使用 callback 的時候,有用到匿名函式。今天來看一下匿名函式的其他細節。 下面是一個簡單匿名函式的使用方法: package main impo...
昨天定義好的函式,可以當作變數來使用,如: package main import "fmt" import "reflect&...
在我們 Hello World 的練習裡,曾提到一點點函式的定義,今天要來詳解它。 定義函式 函式的定義語法如下: func <funcName>(...
摸魚了一個禮拜,今天開始真的要開始來寫一些程式碼了,如果提早寫完再來寫一些比較邊理論上面的事情 這一次的鐵人賽實作網站,想要寫一個簡單的佈告欄,主要其實不是網站...
許多語言都有提供 key-value 存放方法的 map 結構, Go 使用內建型態 map 實作。 map 型態的表示方法為: map[keyType]val...
Slice 跟陣列使用起來很像,而最大的不同是,陣列是值, Slice 是參考到一個陣列。 建立 要建立一個全新的 Slice 有兩種方法,一個是使用 make...
Go 語言的世界裡,陣列為固定長度,元素型態與長度都是陣列型態的一部分。 宣告 使用 [n]type 來宣告一個陣例,其中 n 是數字, type 則為型態,下...
中華小當家的劉昴星曾說過:「鍋子是火燄的化身」,使用鍋子也是中華廚師的必學基礎之一;而在一個程式語言裡,資料型別是資料的化身,同樣也是重要的基礎功。廚師練好基礎...
昨天學到了實字常數(literal constants)該如何表示,今天來了解如何宣告變數(Variables)與常數(Constants)。 變數宣告 宣告變...
Go 語言的常數有分幾種類型: boolean constants ,布林常數。 rune constants ,表示字元的常數。 integer co...
Go是一個編譯語言,意思就是他不像Javascript、PHP一樣,按下執行時就馬上運行程式碼,必須先透過編譯器,將程式語言轉換成電腦看得懂的語言,才能夠執行程...
學習程式的第一隻程式當然就是 Hello World 了,官方首頁有提供 Hello World 原始碼: package main import "...
今天來建立開發環境,會分成安裝主程式與設定環境變數兩個部分。 安裝主程式 這裡的主程式是指 go 指令,它能處理編譯、直譯、建置、格式化程式碼、測試、下載依賴等...