Hashnode好讀版本 類型安全 過往使用interface{} a和b的類型在執行時才會被檢查,這就增加了出錯的可能性。 func Add(a, b in...
最後一天,我們來為Button增加對應的功能,目前有的按鈕有兩種,一種是[進入資料夾],一種是[設為上傳路徑]。 那我們就先從[進入資料夾]開始,我們要製作進入...
一、 本篇提要 接下來會說明檔案的建立、和寫入,在此之前會需要先了解什麼是檔案權限。 檔案存取權限 建立與寫入檔案 os.OpenFile() 二、檔案存取...
我們昨天完成了整個組合Carousel的部分,今天來把資料來源換成從Google Drive API取得。 首先,我們先看一下需要哪些資料 type New...
一、本篇題要 這個主題將了解系統與檔案,像是介紹多種讀寫純文字檔和CSV格式檔案的方式,以及檔案的存取權限。我們會實作一個命令列應用程式,可以接收各種 flag...
昨天我們完成了組成一個Bubble需要的4個區塊,今天我們透過這4個區塊把Bubble組起來,然後再用Bubble把Carousel組合起來,就可以回傳給Dri...
一、本篇提要 本篇重點會著重於Go如何解析JSON,以及了解Go自有的 gob 二進位編碼功能。 解碼JSON為Go結構 將Go結構編碼為JSON 二、解碼...
昨天我們依照JSON把Flex Message刻了出來,真心覺得應該可以有一個Generate Code的工具,把用Flex Message Simulator...
一、本篇提要 本篇開始介紹Go中的time套件,時間處裡是Go程式的核心之一,time套件官方文件 建立時間資料 時間值的格式化 時間值的管理 時間值的比較與...
昨天我們完成了,從Linebot收到檔案,並且上傳到Google Drive上的指定資料夾。 但是目前指定資料夾的ID是寫死的,我們也不可能每次要指定資料夾都去...
一、本篇提要 最後要來看Go程式撰寫簡單的單元測試,並使用 go test 來替我們測試函式與套件。這次我們會沿用之前的shape程式範例,並稍作改寫。 二、撰...
昨天我們已經可以成功從LineBot上收到檔案並暫存下來,今天我們透過domainDrive.SaveContent()回傳的*os.File,把他傳入adap...
一、本篇提要 接下來要介紹的是Go的除錯基本方法,將會介紹到格式化訊息、log、單元測試(unit test)。 以 fmt 套件做格式化輸出 使用log...
一、 本篇提要 如果我們需要使用網路上別人公開的套件,可用 go get 指令下載它到系統中 $GOPATH\pkg\mod 位置。有需要時就使用 go mod...
今天開始來處理上傳檔案到GoogleDrive的部分~ 首先要先能在LineBot上拿到使用者傳送的檔案,我們在Callback加上一個case,透過*line...
圖文好讀版連結 Project Layout in Go 剛入門任何一門程式語言開發的人, 應該大多都是參考各路大神們的專案或者公司的專案在學習模仿。 一開始印...
我們之前實現過ListFiles(),會把所有雲端硬碟上的檔案列出來,我們也確定操作GoogleDrive這段沒有問題。但我們今天的需求是要把收到的檔案傳到Go...
一、本篇提要 本篇要示範的是,Go語言運用套件的重要性,並說明如何讓程式更好維護、更有組織等,在這個主題之下將理解,套件如何定義、套件內名稱匯出方式、替套件建立...
這幾天我們都是透過電腦版的Line來做測試,但是如果是使用手機版的話,會發現當我們點擊Google OAuth的URL要進行認證授權的時候,雖然前面的步驟都一切...
一、本篇提要 承接前篇泛型 基本泛型概念 泛型應用示範 二、基本泛型 2.1 基本泛型概念: Type Parameter:作為佔位符存在的一個型別,用...
在昨天的練習中,當我們使用 GET 請求時,並成功得到網站中的資料,我們都用是終端機查看回傳的資訊,雖然一樣可以達到查看資料的目的,但好像缺少了什麼!!這就不得...
今天一開始我們先來調整一下我們之前對Expiry宣告的類型,昨天仔細看發現oauth官方的Token(oauth2.Token)結構如下: type Token...
一、本篇提要 型別斷言(type assertion) 斷言與switch 二、型別斷言 在 Golang 中,所有型別都實現了 interface{} 這...
開始之前我們調整一下之前在adapter\google\oauth.go的OAuthLoginURL(),把原本寫死的第一個參數”state-token”改...
在現代應用程式中,用戶端和伺服器之間的通信是不可或缺的一部分。Go 的強項之一是其在構建網路應用程序方面的表現。今天,我們將深入研究如何使用 Go 語言創建一個...
一、本篇介紹 泛型 generic 型別斷言 type assertion 與 switch 什麼時候該用泛型 ? 二、泛型 generic 其實inter...
2023-09-21時, IThome有篇文章Go 1.22將正式修改for迴圈作用域,減少開發者犯錯機會 這時剛最近公司專案, 有同事也不小心踩到這地雷,乾脆...
昨天我們在server.go的地方會發現,要去調用SSM的地方,因為是一個一個參數去查,參數一多看起來就會很混亂,像下面這樣。 如果我們能一次性地去查詢,應該...
一、本篇提要 以介面為參數的函式 以介面為回傳值的函式 判斷要不要使用介面作為傳回值 空介面 二、以介面為參數的函式 本篇會透過 io.Reader 為例,...
我們仔細看昨天的流程會發現,要調用Google Drive之前一定要先拿使用者的token去建立*http.Client然後再交給drive.NewServic...