最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go導入不同目錄下包報錯的解決方法

 更新時間:2023年06月07日 10:47:37   作者:知奕奕  
包(package)是多個Go源碼的集合,是一種高級的代碼復用方案,下面這篇文章主要給大家介紹了關(guān)于Go導入不同目錄下包報錯的解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

一次正確的配置

結(jié)果文件結(jié)構(gòu)

這是操作完畢后的完整文件結(jié)構(gòu)樹狀圖,接下來將帶大家一步一步完成它

特別注意!入口文件 main.gogo.mod 在同一目錄下!這一點必須要保證!

└─gindemo.com
    │  go.mod
    │  go.sum
    │  main.go
    │
    ├─.idea
    │      .gitignore
    │      gindemo.com.iml
    │      modules.xml
    │      workspace.xml
    │
    └─src
        └─Chapter1
                C1.go

創(chuàng)建項目

該項目創(chuàng)建使用goland2020

任選一個文件夾創(chuàng)建目錄,注意項目的名字最好依照這個格式: xxx.xxx

點號的后綴隨便寫,只要保證上面這樣的格式就好了

我們新建一個項目 gindemo.com

此時打開 goland 的設(shè)置頁面,設(shè)置好 GOROOT GOPATH

設(shè)置過程請參考 gin 相關(guān)文章!

新建文件 main.go (和 go.mod 同目錄)

// 入口點入口點?。?!必須要main?。?!別忘了求求你了
package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	app := gin.Default()

	app.GET("/shit", func(context *gin.Context) {
		context.JSON(http.StatusOK, gin.H{
			"error": "shit",
		})
	})

	app.Run(":10086")
}

這是一個最簡單的 gin 后端,因為我們之前配置好了 GOPATH ,所以這里 goland 會為我們自動導包,故不會出現(xiàn)飄紅現(xiàn)象!

但實際上 go.mod 內(nèi)部依然沒有配置依賴,我們需要在項目目錄下打開命令行,輸入 go mod tidy 為我們自動處理好依賴關(guān)系;

此時配置好運行參數(shù)直接運行 main 方法就可以開啟我們的后端服務(wù)了

不同文件夾下導包

新建文件(大小寫不是必要的) src/Chapter1/C1.go

代碼不是重點,我們要做的是在 main.go 里面使用該文件的 BindDemo 方法

方法名需要大寫開頭!

package Chapter1

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"net/http"
)

...

func BindDemo(c *gin.Context) {
	...
}

來到我們的 go.mod

來分析一下最關(guān)鍵的三行內(nèi)容

  • 第一行即 gomod 管理的所在包名稱
  • 第二行即 go 版本
  • 第三行及剩余行即導入的依賴
module gindemo.com
go 1.19
require github.com/gin-gonic/gin v1.8.2

此時記下我們 go.mod 管理的包名叫做: gindemo.com (其實就是咱們的項目名)

打開 main.go 修改代碼為

package main

import (

    // 這表示取別名,用小寫字母c代表后面導入的內(nèi)容
	c "gindemo.com/src/Chapter1"
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	app := gin.Default()

	app.GET("/shit", func(context *gin.Context) {
		context.JSON(http.StatusOK, gin.H{
			"error": "shit",
		})
	})

    // 在這里調(diào)用 C1.go 文件內(nèi)的方法
	app.GET("/c1",c.BindDemo)

	app.Run(":10086")
}

我們來分析一下 import 里面這行代碼的含義:c "gindemo.com/src/Chapter1"

  • 小寫字母 c,表示給后面的包取個別名,我們之后直接使用 c 來調(diào)用
  • 導包絕不可以使用相對路徑,必須要用 go.mod 里面 module 行給出的路徑打頭,然后依次索引到我們的文件
  • 這里是直接導入 Chapter1 整個包,也即導入其所擁有的所有 go 文件

此時你發(fā)現(xiàn) goland 直接飄紅,但這不是我們的問題!直接運行是可以跑起來的!

由于我們直接導入 Chapter1 整個包,所以按照我們定的別名 c ,直接調(diào)用方法即可使用!

總結(jié) 

到此這篇關(guān)于Go導入不同目錄下包報錯的解決方法的文章就介紹到這了,更多相關(guān)Go導入不同目錄包報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • Golang使用Gin框架實現(xiàn)http分塊傳輸

    Golang使用Gin框架實現(xiàn)http分塊傳輸

    這篇文章主要為大家詳細介紹了Golang中如何使用Gin框架實現(xiàn)http分塊傳輸功能,文中的示例代碼講解詳細,具有一定的學習價值,需要的可以參考一下
    2023-05-05
  • 詳解go程序如何在windows服務(wù)中開啟和關(guān)閉

    詳解go程序如何在windows服務(wù)中開啟和關(guān)閉

    這篇文章主要介紹了一個go程序,如何在windows服務(wù)中優(yōu)雅開啟和關(guān)閉,文中通過代碼示例和圖文講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • golang redis 管道的實現(xiàn)

    golang redis 管道的實現(xiàn)

    在Golang中操作Redis時,管道是一種優(yōu)化批量命令執(zhí)行效率的重要方式,它通過減少客戶端與Redis服務(wù)器之間的網(wǎng)絡(luò)往返次數(shù),將多個命令一次性發(fā)送到服務(wù)器,再一次性接收所有響應,從而顯著提升批量操作的性能
    2026-04-04
  • Golang中匿名函數(shù)的實現(xiàn)

    Golang中匿名函數(shù)的實現(xiàn)

    本文主要介紹了Golang中匿名函數(shù)的實現(xiàn),包括直接調(diào)用、賦值給變量及定義全局匿名函數(shù)三種方式,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2025-06-06
  • 詳解go語言 make(chan int, 1) 和 make (chan int) 的區(qū)別

    詳解go語言 make(chan int, 1) 和 make (chan int) 的區(qū)別

    這篇文章主要介紹了go語言 make(chan int, 1) 和 make (chan int) 的區(qū)別,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • 初學Go必備的vscode插件及最常用快捷鍵和代碼自動補全

    初學Go必備的vscode插件及最常用快捷鍵和代碼自動補全

    這篇文章主要給大家介紹了關(guān)于初學vscode寫Go必備的vscode插件及最常用快捷鍵和代碼自動補全的相關(guān)資料,由于vscode是開源免費的,而且開發(fā)支持vscode的插件相對比較容易,更新速度也很快,需要的朋友可以參考下
    2023-07-07
  • golang接收post和get請求參數(shù)處理

    golang接收post和get請求參數(shù)處理

    本文主要介紹了golang接收post和get請求參數(shù)處理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • golang之判斷元素是否在數(shù)組內(nèi)問題

    golang之判斷元素是否在數(shù)組內(nèi)問題

    這篇文章主要介紹了golang之判斷元素是否在數(shù)組內(nèi)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2020-12-12
  • 一文探索Go語言中的內(nèi)存對齊

    一文探索Go語言中的內(nèi)存對齊

    在 Go 語言中,內(nèi)存對齊是一個經(jīng)常被忽略但非常重要的概念,本文將通過一個簡單的例子來探討 Go 語言中的內(nèi)存對齊機制,感興趣的可以了解下
    2024-11-11
  • 淺析Go語言的數(shù)據(jù)類型及數(shù)組

    淺析Go語言的數(shù)據(jù)類型及數(shù)組

    Golang是一種靜態(tài)強類型、編譯型語言。Go?語言語法與?C?相近,但功能上有:內(nèi)存安全,GC(垃圾回收),結(jié)構(gòu)形態(tài)及?CSP-style?并發(fā)計算。本文主要和大家聊聊Go語言的數(shù)據(jù)類型及數(shù)組,希望對大家有所幫助
    2022-11-11

最新評論

定州市| 义马市| 东城区| 怀远县| 开原市| 延津县| 河东区| 宜兰县| 肥东县| 日土县| 河东区| 鞍山市| 西宁市| 长宁县| 齐齐哈尔市| 沙湾县| 阿鲁科尔沁旗| 濮阳县| 金山区| 长顺县| 瑞金市| 东至县| 基隆市| 金乡县| 招远市| 监利县| 灌南县| 浪卡子县| 永登县| 清河县| 宝鸡市| 蓬安县| 长海县| 无锡市| 康乐县| 东安县| 昌图县| 恩平市| 石渠县| 许昌市| 正宁县|