Bubble
charmbracelet/bubbletea charmbracelet/bubbletea 是一個類似於 HTML,但是他是用在終端機中建立純文字的使用者界面。 model model 是 bubbletea 中最基本的元件,對應到 HTML 中就是 tag,一個 model 需要有以下三個方法 type model struct {} func (m model) Init() tea.Cmd func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) func (m model) View() string Init 函式定義只在建立 model 時要執行的 cmd,Update 定義每個 tick 都會執行的程式,View 將 model 繪製成字串。 cmd cmd 需要符合以下定義 type tea.Msg interface{} func () tea.Msg cmd 的功能是為了執行 IO 操作而不阻礙畫面,因此 cmd 會被放在 gorutine 中非同步執行,而 Update 不會。 如果在 Init、Update 中要回傳多個 cmd,可以用 tea.Batch(cmd...) 把他們包起來...