好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 詳解golang避免循環import問題(“import cycle not allowed”)

詳解golang避免循環import問題(“import cycle not allowed”)

熱門標簽:浙江高速公路地圖標注 江西轉化率高的羿智云外呼系統 高德地圖標注口訣 中國地圖標注省會高清 地圖標注的汽車標 西部云谷一期地圖標注 南通如皋申請開通400電話 學海導航地圖標注 廣州呼叫中心外呼系統

前言

golang不允許循環import package ,如果檢測到 import cycle ,會在編譯時報錯,通常import cycle是因為設計錯誤或包的規劃問題。

以下面的例子為例,package a依賴package b,同事package b依賴package a

package a

import (
 "fmt"

 "github.com/mantishK/dep/b"
)

type A struct {
}

func (a A) PrintA() {
 fmt.Println(a)
}

func NewA() *A {
 a := new(A)
 return a
}

func RequireB() {
 o := b.NewB()
 o.PrintB()
}

package b:

package b

import (
 "fmt"

 "github.com/mantishK/dep/a"
)

type B struct {
}

func (b B) PrintB() {
 fmt.Println(b)
}

func NewB() *B {
 b := new(B)
 return b
}

func RequireA() {
 o := a.NewA()
 o.PrintA()
}

就會在編譯時報錯:

import cycle not allowed
package github.com/mantishK/dep/a
  imports github.com/mantishK/dep/b
  imports github.com/mantishK/dep/a

現在的問題就是:

A depends on B
B depends on A

那么如何避免?

引入package i, 引入interface

package i

type Aprinter interface {
 PrintA()
}

讓package b import package i

package b

import (
 "fmt"

 "github.com/mantishK/dep/i"
)


func RequireA(o i.Aprinter) {
 o.PrintA()
}

引入package c

package c

import (
 "github.com/mantishK/dep/a"
 "github.com/mantishK/dep/b"
)

func PrintC() {
 o := a.NewA()
 b.RequireA(o)
}

現在依賴關系如下:

A depends on B
B depends on I
C depends on A and B

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • 對Golang import 導入包語法詳解
  • go各種import的使用方法講解
  • golang 之import和package的使用
  • MongoDB使用mongoexport和mongoimport命令,批量導出和導入JSON數據到同一張表的實例
  • golang中import cycle not allowed解決的一種思路
  • Golang報“import cycle not allowed”錯誤的2種解決方法
  • 如何解決django配置settings時遇到Could not import settings ''conf.local''
  • Golang import 導入包語法及一些特殊用法詳解

標簽:貴州 德宏 保定 曲靖 許昌 吐魯番 東營 常州

巨人網絡通訊聲明:本文標題《詳解golang避免循環import問題(“import cycle not allowed”)》,本文關鍵詞  詳解,golang,避免,循環,import,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解golang避免循環import問題(“import cycle not allowed”)》相關的同類信息!
  • 本頁收集關于詳解golang避免循環import問題(“import cycle not allowed”)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产精品xxxav免费视频| 日韩国产中文字幕| 日韩精品一区二区三区| free性护士vid0s中国| 国产色图在线观看| 亚洲五区| 国产成人久久精品麻豆二区| 国产啊V视频在线观看免费| 6080午夜一级| 青青青在线精品免费观看| 艹逼视频下载| 乌克兰A片特黄A片一级| 色妞无码视频在线观看| 国产精品女同一区二区久久夜| 美女被?到爽??高潮草莓| 总受抹布np高潮呻吟np| 热岛good动漫土鳖影视| 16真实处破女| 全是肉双男高H文小池| 国产伦理一区二区三区醉酒女邻居| 被同桌摸出水来好爽视频| 福利视频一区| 老司机永久免费视频| 日韩亚洲精| 欧美成人片床戏做爰| 撒尿bbbbbww视频| 她撩开裙子对着我的嘴尿| 啊?好痛?嗯?小龙女| 91丨九色丨蝌蚪丨少妇在线观看| 女人做爰A片免费观看| jizz农村野外jizz农民| h在线免费观看| 99热婷婷一区二区三区蜜月Av| ????秘?视频免费软件| 亚洲国产精品网| 韩国一级毛片| 青楼app| 夜生活女王之霞姐传奇| 丰满少妇A片免费观看水多多| 国产性―交一乱―色―情人| 又色又爽又黄的美女照片|