Go 語言入門:(一) 環境安裝

一、前言

這里不同于其他人的 Go 語言入門,環境安裝我向來注重配置,比如依賴包、緩存的默認目錄。因為前期不弄好,后面要整理又影響這影響那的,所以就干脆寫成文章,方便后期撿起。

二、安裝

1. 安裝包
https://go.dev/dl/
https://golang.google.cn/dl/
2. 操作

將 msi 安裝到指定位置, D:\Go\bin 添加到環境變量 path

3. 驗證

cmd 輸入 go version 查看版本號,go run test.go 執行腳本

三、環境配置

1. 查看 Go 變量
go env
2. 修改環境配置

通過上面命令查看基本默認配置后,這里就是用來修改 go 運行的緩存位置,模塊安裝位置。

go env -w GOMODCACHE=E:\2setsoft\2tool\go\ENV\go_modcache

四、項目創建

1. 基本目錄
src 目錄存放源代碼。
pkg 目錄存放編譯后的包。
bin 目錄存放編譯后的可執行文件。
2. 初始化 Go 模塊

在項目目錄中運行 go mod init 命令來初始化一個新的 Go 模塊。你需要提供一個唯一的模塊路徑,通常是代碼倉庫的 URL。

生成一個 go.mod 文件,用于記錄項目的依賴關系,初始化時只有一個 go 版本,當 go get 下載了依賴包后,會自動在 go.mod 文件中記錄依賴包的版本號,并生成.sum 文件。

go mod init myfirstgo
3. 添加依賴

如果你的項目需要使用第三方庫,可以使用 go get 命令來添加依賴。例如,如果你想使用 github.com/gin-gonic/gin 這個庫,可以運行:

go get fyne.io/fyne/v2/app

這將自動更新 go.mod 文件,添加相應的依賴項。

4. 編寫 Go 程序

根目錄下創建 main.go 文件并編寫你的 Go 程序。以下是一個簡單的示例代碼,它將輸出 “Hello, World!”:

package main
?
import "fmt"
?
func main() {fmt.Println("Hello, World!")
}
5. 運行 Go 程序

在項目目錄中,使用 go run 命令來編譯并運行你的 Go 程序:

go run main.go
6. 構建 Go 程序 (打包 exe)

(1). 進入當前目錄

(2). 輸入命令 go run main.go

(3). 不打開 GUI 黑框的打包命令

go build -ldflags="-H=windowsgui" -o download_tool.exe  main.go

(4). 直接編譯打包運行,有黑框

go build -o download_tool.exe main.go

五、附加

1. 單元測試

Go 提供了簡單的單元測試框架。你可以在項目中添加測試文件,文件名通常以 _test.go 結尾。例如,創建一個 main_test.go 文件:

package main
?
import ("testing"
)
?
func TestHelloWorld(t *testing.T) {expected := "Hello, World!"actual := "Hello, World!"if actual != expected {t.Errorf("Expected %q, but got %q", expected, actual)}
}
2. 格式化代碼

Go 提供了 gofmt 命令來格式化代碼,使其符合 Go 的代碼風格規范:

gofmt -w .

這將自動格式化項目目錄下的所有 Go 文件。

3. 打包程序不退出

編寫的 Go 程序,為了讓其打包后 exe 應用啟動后不退出,可以這樣處理:

fmt.Println("按回車鍵退出……")fmt.Scanln()
4.AI 編程助手

在 VsCode 安裝 Fitten Code?后,點擊左上角工具欄中的 Fitten Code – 開始對話或者使用快捷鍵 Ctrl+Alt+C。

六、寫在后面

寫完環境搭建,后面可能是用 Go 來做一些小工具,比如批量的文件圖片下載器,office 批量轉 pdf,可以手機在局域網內控制電腦基本操作等等,敬請期待~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/903407.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/903407.shtml
英文地址,請注明出處:http://en.pswp.cn/news/903407.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

筆試專題(十二)

文章目錄 主持人調度題解代碼 小紅的ABC題解代碼 不相鄰取數題解代碼 空調遙控題解代碼 主持人調度 題目鏈接 題解 1. 排序 2. 先按左端點的大小進行排序,保證時間是連續的,如果后一個點的左端點大于等于前一個點的右端點就是和法的,否則…

Ansible 守護 Windows 安全(Ansible Safeguards Windows Security)

Ansible 守護 Windows 安全:自動化基線檢查與加固 在當今網絡威脅日益嚴峻的形勢下,保障 Windows 系統安全至關重要。Ansible 作為一款強大的自動化運維工具,可通過自動化腳本實現 Windows 安全基線檢查和加固,大幅提升運維效率并…

深度解析 MyBatis`@TableField(typeHandler = JacksonTypeHandler.class)`:優雅處理復雜數據存儲

一、引言:當Java對象遇見數據庫 在現代應用開發中,我們經常面臨一個關鍵問題:如何將復雜的Java對象(如Map、List或自定義POJO)優雅地存儲到關系型數據庫中?傳統解決方案需要開發者手動進行序列化和反序列化…

【無標題】四色定理研究團隊的構建與實施路徑——跨學科建模、編程與理論拓展的全流程方案

### **四色定理研究團隊的構建與實施路徑** **——跨學科建模、編程與理論拓展的全流程方案** --- #### **一、團隊構建與核心分工** ##### **1.1 核心角色與技能需求** | **角色** | **職責** | **技能要求** …

SQLMesh增量模型實戰指南:時間范圍分區

引言 在數據工程領域,處理大規模數據集和高頻率數據更新是一項挑戰。SQLMesh作為一款強大的數據編排工具,提供了增量模型功能,幫助數據工程師高效地管理和更新數據。本文將詳細介紹如何使用SQLMesh創建和管理基于時間范圍的增量模型&#xf…

TCP vs UDP:核心區別、握手過程與應用場景(附對比圖)

🌐 引言 在網絡通信中,TCP(傳輸控制協議)和UDP(用戶數據報協議)是兩大核心傳輸層協議。它們各有優劣,適用于不同場景。本文將用圖文對比實戰示例,幫你徹底理解兩者的區別&#xff0…

STM32F103C8T6信息

STM32F103C8T6 完整參數列表 一、核心參數 內核架構? ARM Cortex-M3 32位RISC處理器 最大主頻:72 MHz(基于APB總線時鐘) 運算性能:1.25 DMIPS/MHz(Dhrystone 2.1基準) 總線與存儲? 總線寬度&#xff…

WPF-遵循MVVM框架創建圖表的顯示【保姆級】

文章速覽 1、技術棧實現步驟1、創建WPF工程項目2、引入框架 Caliburn.Micro、數據可視化庫ScottPlot.WPF3、創建文件夾,并創建相應的View & ViewModel4、創建啟動類5、將啟動類設置為啟動項6、編寫View7、編寫VM8、將VM和View中的圖表進行綁定9、備注 示例效果 …

kafka理論學習匯總

基礎知識 基本簡介 Kafka 是一個分布式流式處理平臺,是一種分布式的,基于發布/訂閱的消息系統。 Kafka特點: 1. 同時為發布和訂閱提供高吞吐量 Kafka 的設計目標是以時間復雜度為 O(1) 的方式提供消息持久化能力,即使對 TB 級以…

【亞馬遜云】AWS Wavelength 從理論講解到實驗演練

🪪 本文作者:許業寶 ?? 作者信息: 🌞 VSTECS 云解決方案架構師 | AWS Ambassador | 🪪 AWS Community Builder | 亞馬遜云科技技能云博主 ? 已獲六項 AWS 認證 | CKA、CKS認證 | …

ORACLE DATAGUARD遇到GAP增量恢復方式修復RAC環境備機的實踐

ORACLE DATAGUARD技術是一個常用的數據保護機制,在DATAGUARD運行過程中,遇到異常導致備機不同步,而主庫的歸檔日志也被清理,此時出現GAP,無法同步;就需要人工處理;對于小型數據庫重新全量同步數…

Java24 抗量子加密:后量子時代的安全基石

一、量子計算威脅與 Java 的應對 隨著量子計算機的快速發展,傳統加密算法面臨前所未有的挑戰。Shor 算法可在多項式時間內破解 RSA、ECC 等公鑰加密體系,而 Grover 算法能將對稱加密的暴力破解效率提升至平方根級別。據 NIST 預測,具備實用價…

day005

文章目錄 1. Linux系統核心文件1.1 查看系統版本信息1.1.1 /etc/os-release1.1.2 hostnamectl 1.2 查看主機名并修改1.2.1 hostname1.2.2 cat /etc/hostname1.2.3 hostnamectl 1.3 查看Linux內核版本1.3.1 uname -r1.3.2 hostnamectl 1.4 查看網卡信息并修改1.4.1 nmtui 網絡管…

常用財務分析指標列表

財務分析指標是企業財務管理和決策的重要工具,不同需求人群在各自的場景中運用這些指標來做出決策。企業管理者需要通過財務分析指標來評估企業經營狀況、制定戰略和決策;投資者利用這些指標來評估投資價值和風險;債權人通過財務分析指標來評…

刪除非今天日期文件夾--批處理腳本

echo off setlocal enabledelayedexpansion REM ----- 配置部分 ----- set “target_dirK:\360downloads\Software” set “log_file%temp%\delete_folders.log” REM ----- 管理員權限檢查 ----- NET FILE >NUL 2>&1 || ( echo 需要以管理員權限運行! …

QT創建軟件登錄界面(14)

文章目錄 一、本章說明二、登錄界面設計2.1 添加登錄窗口2.2 設置登錄窗口布局2.3 主函數中創建登錄窗口對象2.4 登錄窗口頭文件與c文件2.5 源文件添加三、注意四、源碼項目文件一、本章說明 注:本節為【基于STM的環境監測系統(節點+云服務器存儲+QT界面設計)】項目第14篇文…

小天互連即時通訊音視頻功能

小天互連即時通訊的音視頻功能是核心功能及優勢之一,小天互連即時通訊采用先進的音視頻編解碼技術,即使在網絡環境不好的情況下,也能智能優化保證會議穩定進行。因此可以讓遠程開會也變得和面對面交流一樣的便捷,極大地提升了溝通…

【LInux網絡】數據鏈路層 - 深度理解以太網和APR協議

📢博客主頁:https://blog.csdn.net/2301_779549673 📢博客倉庫:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正! &…

【零基礎入門】ASP.NET Core快速搭建第一個Web應用

一、為什么選擇ASP.NET Core? 跨平臺支持:可在Windows/macOS/Linux系統運行 高性能:比傳統ASP.NET框架快10倍以上 開源生態:活躍的開發者社區和豐富的NuGet包 云原生支持:完美適配Docker和Kubernetes部署 二、開發…

AT2401C與RFX2401C問題處理資料

1、AT2401C 可以 PIN 對 PIN 替代 RFX2401C 嗎? 答:AT2401C 可以 PIN 對 PIN 替換 RFX2401C;同時 CB2401 也可以 PIN 對 PIN 替換 RFX2401C;我們主要推 AT2401C 這款芯片,如果客戶產 品需要過認證或者應用于音頻產品建…