Interface 是 Go 這門靜態語言中具有「動靜兼備」特性的語法元素。它既展示了 Go 的強大表達能力,也經常讓初學者感到迷惑。為了釐清這些迷惑,本文將深...
在 Go 語言中,interface 是一組方法的集合,透過 type 和 interface 關鍵字來定義。這些方法的集合唯一確定了這個 interface...
Go 語言的繼承與組合 Go 語言沒有像 C++/Java 等語言可以透過 extend 關鍵字來繼承某個 class。因此,Go class的所有方法都是自己...
和多數程式語言一樣,在 Go 語言中,我們需要考慮如何設計方法。由於在 Go 語言中,方法本質上就是函數,所以我們之前講解的關於函數設計的內容同樣適用於方法,例...
在 Go 語言中,defer 關鍵字是一個強大而且實用的工具,能讓你更優雅地處理資源釋放和一些在函數結束前必須執行的清理工作。本文將通過生動的比喻和簡單的示例,...
在剛開始學習 Go 語言的時候,我們可能經常會遇到這樣一個問題:一個 Go 專案中有數十個 Go packages,每個package中又有若干常數、變數、各種...
前言 很高興今年又能夠報名鐵人賽的活動,那今年一樣是以完賽為目標邁進!去年我寫的是前端,那今年就來挑戰寫後端吧!先說說自己對前後端的感受好了,我覺得前端能夠讓我...
我們編寫的 Go 程式一般都是簡單程式,一般由一個或幾個 Go 原始碼檔案組成,而且所有原始碼檔案都在同一個目錄中。但是生產環境中運行的程式可不會這麼簡單,通常...
當你首次接觸 Go 語言時,可能會被它的簡潔、直觀所吸引,重點是,他還是編譯式語言,速度快、可執行文件小、開發也很快、還有很多第三方Library可以使用。然而...
Excelize 是 Go 語言編寫的用於操作 Office Excel 檔案基礎庫,基於 ECMA-376,ISO/IEC 29500 國際標準。可以使用它...
gorm的Find跟Scan 筆者在使用gorm時通常都習慣用Find,不過最近因為在查找gorm的官網時意外看到Scan的用法,就好奇查了一下他們有什麼不同,...
Object 我們將學習如何撰寫自定義的 gomock matcher,以增強我們Golang單元測試的強度。 Weak Unit Test for User...
How to store password Table users as U { username varchar [pk] hashed_passwo...
Generate User Creation and Retrieval Code 步驟1: 建立 user.sql 檔案 在db/query資料夾中創建一個...
Intro 目前,我們已為簡易銀行系統實現了多項功能,包括創建、更新、檢索或轉賬等,然而,還缺少一個非常重要的功能:user authentication 和...
Implement the transfer money API handler api/transfer.go package api import (...
最後一天,我們來為Button增加對應的功能,目前有的按鈕有兩種,一種是[進入資料夾],一種是[設為上傳路徑]。 那我們就先從[進入資料夾]開始,我們要製作進入...
我們昨天完成了整個組合Carousel的部分,今天來把資料來源換成從Google Drive API取得。 首先,我們先看一下需要哪些資料 type New...
這一次鐵人賽終於順利結束了,在過去的三十天中,我們藉由concurrency in go這本書深入研究了Golang的併發編程,探討了併發的基本概念、Gorou...
在一些長時間運行的系統中,如守護進程(Daemon process),經常有一些常駐的子程序,名為goroutines。這些goroutines有時會因外部資源...
昨天我們完成了組成一個Bubble需要的4個區塊,今天我們透過這4個區塊把Bubble組起來,然後再用Bubble把Carousel組合起來,就可以回傳給Dri...
昨天我們依照JSON把Flex Message刻了出來,真心覺得應該可以有一個Generate Code的工具,把用Flex Message Simulator...
昨天我們完成了,從Linebot收到檔案,並且上傳到Google Drive上的指定資料夾。 但是目前指定資料夾的ID是寫死的,我們也不可能每次要指定資料夾都去...
如果你曾經使用過API來獲取服務,那麽你可能經受過與速率限制相抗衡。速率限制使得某種資源每次訪 問的次數受限。資源可以是任何東西:API連接,磁盤I/O,網絡包...
Write unit test for Get Account API Code Flow: 透過 randomAccount() 函數建立一個隨機的測試...
昨天我們已經可以成功從LineBot上收到檔案並暫存下來,今天我們透過domainDrive.SaveContent()回傳的*os.File,把他傳入adap...
對於大部分應用,儘可能快地響應請求是首要任務。例如,應用程序可能正在服務用戶的HTTP請求,或者檢索複製的數據塊。在這些情況下,你需要做出權衡:是將請求複製到多...
心跳(heartbeat)是併發進程向外界發出信號的一種方式。命名者從人體解剖學中受到啟發,使用心跳一詞表示被觀察 者的生命體征。心跳在Go語言出現前就已被廣泛...
今天開始來處理上傳檔案到GoogleDrive的部分~ 首先要先能在LineBot上拿到使用者傳送的檔案,我們在Callback加上一個case,透過*line...
我們之前實現過ListFiles(),會把所有雲端硬碟上的檔案列出來,我們也確定操作GoogleDrive這段沒有問題。但我們今天的需求是要把收到的檔案傳到Go...