go语言版的ip2long函数实例
本文实例讲述了go语言版的ip2long函数。分享给大家供大家参考。具体分析如下:
这里介绍的go语言版的ip2long 函数不会对 IP 的合法性进行校验。
// 注意: 该函数不会对 IP 的合法性进行校验
func Ip2Long(ip string) (ips string) {
var ip_pieces = strings.Split(ip, ".")
ip_1, _ := strconv.ParseInt(ip_pieces[0], 10, 32)
ip_2, _ := strconv.ParseInt(ip_pieces[1], 10, 32)
ip_3, _ := strconv.ParseInt(ip_pieces[2], 10, 32)
ip_4, _ := strconv.ParseInt(ip_pieces[3], 10, 32)
var ip_bin string = fmt.Sprintf("%08b%08b%08b%08b", ip_1, ip_2, ip_3, ip_4)
ip_int, _ := strconv.ParseInt(ip_bin, 2, 64)
return
}
希望本文所述对大家的Go语言程序设计有所帮助。
相关推荐
-
Go语言的os包中常用函数初步归纳
(1)os.Getwd函数原型是func Getwd() (pwd string, err error) 返回的是路径的字符串和一个err信息,为什么先开这个呢?因为我看os的包的时候第一个是Chkdir这个包,但是你不知道当前目录怎么知道改变目录了呢?所以先说Getwd() 函数demo 复制代码 代码如下: import ( "fmt" "os" ) func main() { dir, _ := os.Getwd() fmt.Println("
-
Go语言里的new函数用法分析
本文实例讲述了Go语言里的new函数用法.分享给大家供大家参考.具体如下: 表达式 new(T) 分配了一个零初始化的 T 值,并返回指向它的指针. var t *T = new(T) 或 t := new(T) 代码如下: 复制代码 代码如下: package main import "fmt" type Vertex struct { X, Y int } func main() { v := new(Vertex) fmt.Println(v) v
-
Go语言常见哈希函数的使用
myhash.go /** * Created with IntelliJ IDEA. * User: liaojie * Date: 12-9-8 * Time: 下午3:53 * To change this template use File | Settings | File Templates. */ package main import ( "crypto/md5" "crypto/sha1" "crypto/sha256" &qu
-
Go语言中的流程控制结构和函数详解
这小节我们要介绍Go里面的流程控制以及函数操作. 流程控制 流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑.Go中流程控制分三大类:条件判断,循环控制和无条件跳转. if if也许是各种编程语言中最常见的了,它的语法概括起来就是:如果满足条件就做某事,否则做另一件事. Go里面if条件判断语句中不需要括号,如下代码所示: 复制代码 代码如下: if x > 10 { fmt.Println("x is greater than 10&
-
golang中strconv.ParseInt函数用法示例
本文实例讲述了golang中strconv.ParseInt函数用法.分享给大家供大家参考,具体如下: golang strconv.ParseInt 是将字符串转换为数字的函数,功能灰常之强大. 参数1 数字的字符串形式 参数2 数字字符串的进制 比如二进制 八进制 十进制 十六进制 参数3 返回结果的bit大小 也就是int8 int16 int32 int64 func ParseInt(s string, base int, bitSize int) (i int64, err erro
-
Go语言截取字符串函数用法
本文实例讲述了Go语言截取字符串函数用法.分享给大家供大家参考.具体如下: 复制代码 代码如下: func Substr(str string, start, length int) string { rs := []rune(str) rl := len(rs) end := 0 if start < 0 { start = rl - 1 + start } end = start + length
-
Go语言中append函数用法分析
本文实例分析了Go语言中append函数用法.分享给大家供大家参考.具体如下: Go语言中append的功能十分强大,使用它可以使很多功能的实现变得更加简洁.以下为简单对比: .将一个slice插入到另一个slice的指定位置: 不使用append: 复制代码 代码如下: func insertSliceAtIndex(slice_origin []int, slice_to_insert []int, insertIndex int) (result []int, err error
-
举例详解Go语言中os库的常用函数用法
(f *File).Name()这个函数是返回文件的名称,函数原型func (f *File) Name() string要文件的指针操作,返回字符串,感觉比较鸡助的方法底层实现 复制代码 代码如下: func (f *File) Name() string { return f.name } import ( "fmt" "os" ) func main() { f, _ := os.Open("1.go") fmt.Println(
-
Go语言中函数的参数传递与调用的基本方法
按值传递函数参数,是拷贝参数的实际值到函数的形式参数的方法调用.在这种情况下,参数在函数内变化对参数不会有影响. 默认情况下,Go编程语言使用调用通过值的方法来传递参数.在一般情况下,这意味着,在函数内码不能改变用来调用所述函数的参数.考虑函数swap()的定义如下. 复制代码 代码如下: /* function definition to swap the values */ func swap(int x, int y) int { var temp int temp = x /* s
-
golang实现unicode转换为字符串string的方法
本文实例讲述了golang实现unicode转换为字符串string的方法.分享给大家供大家参考,具体如下: 复制代码 代码如下: package main import ( "bytes" "encoding/binary" "encoding/hex" "fmt" "strings" ) func main() { str := `\u5bb6\u65cf
-
简单了解Go语言中函数作为值以及函数闭包的使用
函数作为值 Go编程语言提供灵活性,以动态创建函数,并使用它们的值.在下面的例子中,我们已经与初始化函数定义的变量.此函数变量的目仅仅是为使用内置的Math.sqrt()函数.下面是一个例子: 复制代码 代码如下: package main import ( "fmt" "math" ) func main(){ /* declare a function variable */ getSquareRoot := func(x float64
-
GO语言延迟函数defer用法分析
本文实例讲述了GO语言延迟函数defer用法.分享给大家供大家参考.具体分析如下: defer 在声明时不会立即执行,而是在函数 return 后,再按照 FILO (先进后出)的原则依次执行每一个 defer,一般用于异常处理.释放资源.清理数据.记录日志等.这有点像面向对象语言的析构函数,优雅又简洁,是 Golang 的亮点之一. 代码1:了解 defer 的执行顺序 复制代码 代码如下: package main import "fmt" func fn(n int) int {
-
Golang学习笔记(六):struct
struct struct,一组字段的集合,类似其他语言的class 放弃了大量包括继承在内的面向对象特性,只保留了组合(composition)这个最基础的特性 1.声明及初始化 复制代码 代码如下: type person struct { name string age int } //初始化 func main() { var P person P.name = "tom" P.age = 25 fmt.Println(P.name)
随机推荐
- DB2新手使用的一些小笔记:新建实例、数据库路径不存在、客户端连接 .
- C/C++经典实例之模拟计算器示例代码
- 详解Mysql中的JSON系列操作函数
- 基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
- Java中string和int的互相转换问题
- Js-$.extend扩展方法使方法参数更灵活
- mysql 字段类型说明
- Python表示矩阵的方法分析
- Android使用分类型RecyclerView仿各大商城首页
- 结合AJAX进行PHP开发之入门
- js简单判断移动端系统的方法
- 浅谈jQuery.easyui的datebox格式化时间
- jQuery模板技术和数据绑定实现代码
- JavaScript修改浏览器tab标题小技巧
- xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
- Android Mms之:接收信息流程(图文详解)
- Java开发必会的Linux命令
- PHP 动态生成静态HTML页面示例代码
- PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
- react redux入门示例