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

go mod 使用舊版本 版本號指定方式

 更新時間:2021年05月08日 09:44:43   作者:gs80140  
這篇文章主要介紹了go mod 使用舊版本 版本號指定方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在使用go mod的過程中,發(fā)現不容易指定版本號

尤其是沒有打tag的,不知道怎么指定版本號, 不知道有哪版本號

正常使用都沒有問題,但是當引用的項目用了舊的代碼, 這時候必須使用舊的版本,無法指定版本,不知道如何入手

尤其是k8s.io不知道是什么鬼, 從哪里看它的代碼,只知道github.com

這個時候在 go.mod文件中 require 里面加上 github.com/kubernetes/cloud-provider 2bf8e45

此時會自動生成版本號, 其中 2bf8e45 這個是在github上找到源碼的特定的提交 commit 號, 想使用舊版本的話, 找到對應的tag或分支 找到 commit 號

這個commit號也可以使用tag號來替換

例如

k8s.io/cli-runtime => github.com/kubernetes/cli-runtime kubernetes-1.14.2

然后使用replace來替換,require里面的 github.com/kubernetes/cloud-provider 2bf8e45 會自動變成

github.com/kubernetes/cloud-provider v0.0.0-20190516232619-2bf8e45c8454

此時,我們把它刪除并復制到replace 里面

k8s.io/apiserver => github.com/kubernetes/apiserver v0.0.0-20190516230822-f89599b3f645
k8s.io/cloud-provider => github.com/kubernetes/cloud-provider v0.0.0-20190516232619-2bf8e45c8454
sigs.k8s.io/yaml => github.com/kubernetes-sigs/yaml v1.1.0

效果這樣的

原來使用的新版本號不用動,主要換了replace

補充:golang:比較版本號大小

看代碼吧~

package main
import (
	"fmt"
	"strings"
)
var (
	VersionBig = 1
	VersionSmall = 2
	VersionEqual = 0
)
func compareStrVer(verA, verB string) int {
	verStrArrA := spliteStrByNet(verA)
	verStrArrB := spliteStrByNet(verB)
	lenStrA := len(verStrArrA)
	lenStrB := len(verStrArrB)
	if lenStrA != lenStrB {
		panic("")
	}
	return compareArrStrVers(verStrArrA, verStrArrB)
}
func compareArrStrVers(verA, verB []string) int {
	for index, _ := range verA {
		littleResult := compareLittleVer(verA[index], verB[index])
		if littleResult != VersionEqual {
			return littleResult
		}
	}
	return VersionEqual
}
func compareLittleVer(verA, verB string) int {
	bytesA := []byte(verA)
	bytesB := []byte(verB)
	lenA := len(bytesA)
	lenB := len(bytesB)
	if lenA > lenB {
		return VersionBig
	}
	if lenA < lenB {
		return VersionSmall
	}
	return compareByBytes(bytesA, bytesB)
}
func compareByBytes(verA, verB []byte) int {
	for index, _ := range verA {
		if verA[index] > verB[index] {
			return VersionBig
		}
		if verA[index] < verB[index] {
			return VersionSmall
		}
	}
	return VersionEqual
}
func spliteStrByNet(strV string) []string {
	return strings.Split(strV, ".")
}
func main() {
	versionA := "1.2.3.54"
	versionB := "1.2.3.54"
	fmt.Println(compareStrVer(versionA, versionB))
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • Golang工具庫viper的使用教程

    Golang工具庫viper的使用教程

    viper?是?go?項目中用來讀取配置文件的庫,支持讀取?yaml、toml、json、hcl、env?等格式的配置文件,下面就來和大家聊聊它的具體使用吧
    2023-07-07
  • Go ORM的封裝解決方式詳解

    Go ORM的封裝解決方式詳解

    這篇文章主要為大家介紹了Go ORM的封裝解決方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Go?interface{}?轉切片類型的實現方法

    Go?interface{}?轉切片類型的實現方法

    本文主要介紹了Go?interface{}?轉切片類型的實現方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Windows下升級go版本過程詳解

    Windows下升級go版本過程詳解

    這篇文章主要為大家介紹了Windows下升級go版本過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 一文帶你了解Go語言fmt標準庫輸出函數的使用

    一文帶你了解Go語言fmt標準庫輸出函數的使用

    這篇文章主要為大家詳細介紹了Go語言中 fmt 標準庫輸出函數的使用,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • golang 實現兩個結構體復制字段

    golang 實現兩個結構體復制字段

    這篇文章主要介紹了golang 實現兩個結構體復制字段,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • golang 40行代碼實現通用協(xié)程池

    golang 40行代碼實現通用協(xié)程池

    golang協(xié)程機制很方便的解決了并發(fā)編程的問題,但是協(xié)程并不是沒有開銷的,所以也需要適當限制一下數量。這篇文章主要介紹了golang 40行代碼實現通用協(xié)程池,需要的朋友可以參考下
    2018-08-08
  • 利用Golang實現對配置文件加密

    利用Golang實現對配置文件加密

    在實際的應用中,配置文件通常包含了一些敏感的信息,如數據庫密碼、API密鑰等,為了保護這些敏感信息不被惡意獲取,我們可以對配置文件進行加密,本文將介紹如何使用Go語言實現對配置文件的加密,需要的朋友可以參考下
    2023-10-10
  • golang調用shell命令(實時輸出,終止)

    golang調用shell命令(實時輸出,終止)

    本文主要介紹了golang調用shell命令(實時輸出,終止),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • 使用Golang實現WebSocket心跳機制

    使用Golang實現WebSocket心跳機制

    WebSocket是一種在客戶端和服務器之間實現全雙工通信的協(xié)議,它允許實時地傳輸數據,并且比傳統(tǒng)的HTTP請求更加高效,在使用Golang構建WebSocket應用程序時,一個重要的考慮因素是如何實現心跳機制,所以本文將探討如何使用Golang實現WebSocket心跳
    2023-11-11

最新評論

温泉县| 黄梅县| 巩留县| 肥东县| 丹巴县| 时尚| 岳阳县| 公安县| 汽车| 三门峡市| 义马市| 府谷县| 涞源县| 麻栗坡县| 广宗县| 泰州市| 乌苏市| 会泽县| 沂水县| 合阳县| 淄博市| 鱼台县| 裕民县| 芒康县| 华池县| 盐城市| 个旧市| 高雄县| 北票市| 沈阳市| 沭阳县| 邵阳市| 鹤壁市| 镇雄县| 漠河县| 南宁市| 洪泽县| 双流县| 绥宁县| 吉隆县| 米泉市|