【(四十五)golang--反射】教程文章相关的互联网学习教程文章

golang 浮点数 取精度的效率对比【代码】

需求 浮点数取2位精度输出实现  代码package mainimport ("time""log""strconv""fmt" )func main() {threadCount := 100000fa := 3.233667time1 := TestFn(threadCount,fa,func(fa float64) string{return strconv.FormatFloat(fa,‘f‘,2,64)})log.Printf("FormatFloat 耗时:%.4f ms",time1)time2 := TestFn(threadCount,fa,func(fa float64) string{return fmt.Sprintf("%.2f",fa)})log.Printf("Sprintf 耗时:%.4f ms",time...

golang 内置函数new()【代码】

new() 这是一个用来分配内存的内置函数,它的第一个参数是一个类型,不是一个值,它的返回值是一个指向新分配的 t 类型的零值的指针。在golang的代码定义如下:func new(t Type) *Type strut{} 直接使用struct{} 来初始化strut时,返回的是一个struct类型的值,而不是指针两者是不一样的 golang的new和make主要区别如下:1、make只能用来分配及初始化类型为slice,map,chan的数据;new可以分配任意类型的数据2、new分配返回的是指...

Golang解析json的几种方法【代码】

Golang解析json的几种方法概要使用Golang调用其它平台API接口时总会被多层的json串给恶心到,我记录一下自己解析json的几种方法。一、自带的json包func JsonUnmarshal(b []byte) {var s Studentif err := json.Unmarshal(b, &s); err != nil {log.Println(err)} }二、强制类型装换和反射func GetItemMap(parent map[string]interface{}, key string) map[string]interface{} {val, ok := parent[key].(map[string]interface{})if o...

centos 安装golang笔记

1、使用yum安装  yum install go 这个命令可以将go环境安装到linux上。2、配置gopath第一步安装成功的go命令会被放入/usr/lib/golang/bin/usr/lib/golang 该目录是yum install go安装的目录,所以go相关的都在这里。使用命令:vim /etc/profile 打开profile文件在文件末尾填入如下内容:export GOROOT=/usr/lib/golangexport GOBIN=$GOROOT/binexport GOPATH=/home/liuweiqiang/golang //这里是注释 这个路径是golan...

简单的订阅发布机制实现(Golang)

Redis和NSQ都有完善的订阅和发布实现,但参考它们的源码实现,做个实际例子,对两边的异同和这种机制会更有印象。练习实现简单的 订阅/取消订阅/发布信息 功能,足够了。Server.go Server结构中的Dict用map保存了Channel的相关信息,而Channel结构中则用一个map保存了订阅这个Channel的Client. 这个与Redis中不太一样,Redis中的Dict用Channel的名字作为map的key,value则是其对应的Client列表。而Client中则保 存了其所有订...

golang 正则替换html标签【代码】

func main() {str := ` <p>  还只是在凌晨4点,家住徐汇的王女士在手指关节的阵阵僵痛中醒来,这种每每在凌晨出现的疼痛已经折磨她将近半年了。之前她一直认为是普通的关节痛,直到最近才在正规医院被诊断为<a href="http://jbk.39.net/lfsxgjy/" target="_blank" keycmd="bindJbkUi">类风湿</a><a href="http://jbk.39.net/fsxgjy/" target="_blank" keycmd="bindJbkUi">关节炎</a>。在我国,出现同样状况把<a href="http://jbk...

collection function _ golang【代码】

We often need our programs to perform operations on collection of data, like selecting all items that satisfy a given predicate or mapping all items to a new collection with a custom function.package mainimport ("fmt""strings" )func Index(vs []string, t string) int {for i, v := range vs {if v == t {return i}}return -1 }func Include(vs []string, t string) bool {return Index(vs, t) >= 0 }func Any(vs...

golang之web编程入门

golang之web编程入门示例,聊聊数行,简单理解。package mainimport ("fmt""html/template""log""net/http""strings" )func sayhelloName(w http.ResponseWriter, r *http.Request) {r.ParseForm() //解析url传递的参数,对于POST则解析响应包的主体(request body)//注意:如果没有调用ParseForm方法,下面无法获取表单的数据fmt.Println(r.Form) //这些信息是输出到服务器端的打印信息 fmt.Println("path", r.URL.Path)fmt.Println("...

在golang编程中总结的基础语法及常见的问题【代码】

写下,自己在用golang开发中,用到的东西,有啥写啥。今个就写下golang中的控制语句 if else、for、switch、goto,这几个方面。if 判断对比package main import "fmt" func main(){fmt.Printf("hello world\n")if a:=5;a>2 {fmt.Printf("a >2")}else{fmt.Printf("a<2")} }for 循环这里可以直接赋值for i, j := 1, 10; i < j; i,j=i+1,j+1 { //死循环fmt.Println(i) }完整的例子package main import "fmt" func main(){fmt.Print...

Golang 入门系列(十二)ORM框架gorm【代码】

之前在已经介绍了用的github.com/go-sql-driver/mysql 访问数据库,不太了解的可以看看之前的文章 https://www.cnblogs.com/zhangweizhong/category/1275863.html。实际上,为提高开发效率,一般都会使用一些orm框架,把数据库层屏蔽,用户看到的只有对象而无需我们手动做一些转换,这样在使用的时候就非常方便。这种操作方式基本上已经成了标准做法。golang也有很多优秀的orm框架,今天就来介绍介绍gorm。为什么要使用orm? 为什么...

java、python、golang等开发语言如何快速生成二维码?【代码】

免费二维码生成途径非常多!比如比较有名的草料二维码,如果只是简单的使用,用它就足够了。但是如果想大规模的生成,那就不太合适了。再者很多工具都没办法在二维码中加入logo(像微信二维码一样)。接下来,我就说说如何快速的、高质量的生成一个可高度定制的二维码。二维码的编码算法是公开的,这就意味着大部分的开发语言都可以动图生成。但是在二维码应用如此广泛的今天,还自己去造轮子,如果不是傻,那就是正真的技术极客了...

Golang格式化字符串输出

格式化指令含义%%% 字面量%b一个二进制整数,将一个整数格式化为二进制的表达方式%c一个 Unicode 的字符%d十进制数值%o八进制数值%x小写的十六进制数值%X大写的十六进制数值%U一个 Unicode 表示法表示的整形码值,默认是 4 个数字字符%s输出以原生的 UTF-8 字节表示的字符,如果 console 不支持 UTF-8 编码,则会输出乱码%t以 true 或者 false 的方式输出布尔值%v使用默认格式输出值,或者使用类型的 String() 方法输出的自定义值,...

grpc-golang实现账号and密码认证【代码】

// I would recommend to use interceptors:// client grpc.Dial(target, grpc.WithPerRPCCredentials(&loginCreds{Username: "admin",Password: "admin123", }))type loginCreds struct {Username, Password string }func (c *loginCreds) GetRequestMetadata(context.Context, ...string) (map[string]string, error) {return map[string]string{"username": c.Username,"password": c.Password,}, nil }func (c *loginCreds) Re...

Golang(笔记) 顺序编程【代码】【图】

package mainimport ("fmt""bufio""io""os""strconv""flag" ) var infile *string=flag.String("i","unsorted.data","File contains values for sorting") var outfile *string=flag.String("o","sorted.data","File to receive sorted values ") var algorithm *string=flag.String("a","qsort","Sort algorithm") func readValues(infile string)(values []int,err error){file,err:=os.Open(infile)if(err!=nil){fmt.Println("F...

paho.mqtt.golang--option.go 源码解析【代码】

broker: 指 mqtt 服务器package mqttimport ("crypto/tls""net/http""net/url""regexp""strings""time" )// 允许在重新连接之前更新用户名和密码。函数应该返回当前的用户名和密码。 type CredentialsProvider func() (username string, password string)// MessageHandler 是一种回调类型, // 可以设置为在发布到订阅了客户端的主题的消息到达时执行。 type MessageHandler func(Client, Message)// ConnectionLostHandler是一种...