首页 > 其他分享 >GoLang 版本号大小对比

GoLang 版本号大小对比

时间:2023-04-23 16:36:11浏览次数:40  
标签:return no 版本号 GoLang int result 100 对比


go版本号大小对比,比如:1.0.0  < 1.0.1    

思路:按照  .(点符号)分割,分割后将其转成整型,然后再就行对比。

// 版本号对比使用【版本号 = 第一位*10000 + 第二位*100 + 第三位】
// 一般版本号是3位,如果大于三位就需要在此进行扩展
func FormatAppVersion(versionNo string) int {
	if versionNo == "" {
		return -1
	}
	no := 0
	nos := strings.Split(versionNo, ".")
	if len(nos) != 3 {
		return -1
	}
	for i, n := range nos {
		j, err := strconv.Atoi(n)
		if err != nil || j >= 100 || j < 0 {
			return -1
		}
		no += j * int(pow(100, (2-i)))
	}
	return no
}

//x的n次方
func pow(x int, n int) int {
	if x == 0 || n < 0 {
		return 0
	}
	if n == 0 {
		return 1
	}
	result := 1
	for i := 0; i < n; i++ {
		result *= x
	}
	return result
}

标签:return,no,版本号,GoLang,int,result,100,对比
From: https://blog.51cto.com/u_16085147/6218173

相关文章

  • 15分钟入门23种设计模式:图解,范例和对比
    本文力图在15分钟内,通过UML图解、范例和类比,让你对面向对象的23种设计模式形成提纲挈领的认识,从而让我们在面临代码设计问题时更加成竹在胸。本文源代码: UML, SampleCode。开门见山我们直奔主题,分类呈现23种设计模式的庐山真面目:创建型(5)Creational结构型(7)Structural......
  • web前端三大主流框架对比
    关注我了解更多web前端技术知识,带你一路“狂飙”到底!上岸大厂不是梦!web前端开发框架是在前端工程师中经常会用到的内容,可以大大减少项目中的bug,节约开发成本,加快项目周期。在使用web前端开发框架之前,需要先了解web前端三三大主流框架有哪些。目前web前端三大框架Angular、R......
  • web前端三大主流框架对比分析
    web前端开发框架是在前端工程师中经常会用到的内容,可以大大减少项目中的bug,节约开发成本,加快项目周期。在使用web前端开发框架之前,需要先了解web前端三三大主流框架有哪些。目前web前端三大框架Angular、React、Vue,这三种框架各有优势,下面将对web前端三大主流框架对比、分析......
  • Golang实现代理TCP客户端
    目标网站xxx.com,代理服务器xxxproxy.com,通过代理服务器实现流量转发。packagemainfunchandle(srcnet.Conn){dst,err:=net.Dial("tcp","xxx.com:80")iferr!=nil{log.Fatalln("Unabletoconnectoutunreachablehost")}deferd......
  • 01 | ranges的初步印象(新旧做法的对比)
    1.ranges::sort——给容器排序在这之前我们需要采用标准库的sort算法并且需要传入两个迭代器。但是现在我们可以这样,使用ranges命名空间下的sort函数,仅需要传入一个容器的名字即可。以下是涉及到的concepts2.views的概念——给对象进行筛选、转换、复制我们可以将一个......
  • MIMO通信系统中对比Alamouti和MRC的误码率性能matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:   2.算法涉及理论知识概要       MIMO(Multiple-InputMultiple-Out-put)系统是一项运用于802.11n的核心技术。802.11n是IEEE继802.11bag后全新的无线局域网技术,速度可达600Mbps。同时,专有MIMO技术可改进已有802.11a/b/g......
  • golang实现RPC
      一、RPC工作流程:摘自《goweb编程》二、go支持三个级别的RPC(HTTP,TCP,JSONRPC)三、实现http的RPC实例:3.1GORPC的函数只有符合以下条件才能被远程访问函数必须是首字母是大写必须有两个首字母大写的参数第一个参数是接收的参数,第二个参数是返回给客户端的参数,第二......
  • 在Golang中配置Logrus
    当你开始使用Golang编写应用程序时,记录应用程序的运行状态和错误信息是至关重要的。为了记录这些信息,你需要使用一个强大的日志库。Logrus是一个流行的日志库,它提供了丰富的功能和易于使用的API。在本文中,我们将介绍如何配置Logrus来记录应用程序的日志信息。安装Logrus首先,你......
  • 三大方面对比两种企业邮箱的功能,看完你就明白了
    企业邮箱有收费和免费的两种,那么应该选择哪一种呢?今天我们从三大方面对比两种企业邮箱的基本功能,看完你就明白了。1、容量方面:收费企业邮箱无限容量,免费企业邮箱中容量最大的只有5G,还有2、3G的,很容易造成邮箱容量满了接收不到邮件的问题。2、附件方面:收费企业邮箱......
  • golang net/rpc inject data to service function
    在golang中,net/rpc库比较牛,只需要写函数,然后使用现成的ServerCodec就可以完成rpc服务了。但是有个问题,service函数的参数都是来自客户端的,如果服务器想为某个特殊的函数注入一些配置或状态参数,就不好弄了。解决方案:修改service函数,比如原来的参数是FuncArgs结构体,现在改成t......