【Golang获取时间戳及格式化】教程文章相关的互联网学习教程文章

Golang如何使用websocket【代码】【图】

下载websocket包$ go get golang.org/x/net/websocket 如果下载失败,可能是被墙了。package golang.org/x/net/websocket: unrecognized import path "golang.org/x/net/websocket" (https fetch: Get https://golang.org/x/net/websocket?go-get=1: dial tcp 216.239.37.1:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection ...

Golang中Channel使用的一点随想【代码】

前言(为什么要写这篇文章)在Golang中,搞同步/并发控制的方法有很多,有channel(管道),WaitGroup(等待线程结束),context(上下文管理),我一直想深入研究一下它们,因为这次开发我遇到了很多比较棘手的问题,我认为万变不离其宗,所以我看了一下他们的源码,然后简单的写了几个Demo,结合了我自己的开发经验,写成此文,做记录的同时,希望可以帮到其他兄弟,未来我还会出context随想,waitgroup随想,一点一点来吧。什么是chan...

Golang函数执行模板(log,耗时,panic)

有些函数执行前后,需要加日志、记录耗时、还要处理panic,都是些重复性的东西。 所以弄了个模板式的东西,碰到这类需求,直接把相关函数和参数,丢到run函数去就不用管了,省得浪费时间。先上个调用例子://函数执行模板 //author: Xiong Chuan Liang //date: 2015-3-19package mainimport ("fmt""log""os""utils" )func main() {log.SetOutput(os.Stdout)w := utils.NewWorker()w.Run("myPrintf()", myPrintf, "aa", "bb")}func myPrin...

golang中数组与切片的区别【代码】

初始化:数组需要指定大小,不指定也会根据初始化的自动推算出大小,不可改变数组:a := [...]int{1,2,3} a := [3]int{1,2,3}切片:a:= []int{1,2,3} a := make([]int, 5) a := make([]int, 5, 10)函数传递:数组需要明确指定大小,切片不需要。数组是值传递,切片是地址传递numbers2 := [...]int{1, 2, 3, 4, 5, 6} maxIndex2 := len(numbers2) - 1for i, e := range numbers2 {if i == maxIndex2 {numbers2[0] += e} else ...

1.golang的环境搭建及入门【代码】【图】

安装包下载 下载链接:https://dl.google.com/go/go1.12.3.windows-amd64.msi环境搭建 安装完成之后,找一个来存放go语言文件的文件夹,我这里选的是G:\goGOROOT:Go 安装后的根目录(例如:G:\go),安装过程中会由安装程序自动写入系统环境变量中。GOBIN:Go 的二进制文件存放目录(%GOROOT%\bin)PATH:需要将 %GOBIN% 加在 PATH 变量的最后,方便在命令行下运行。在GOPATH目录下(G:\go)新建三个文件夹bin // 用来存放编译好...

Golang学习 - errors 包【代码】

------------------------------------------------------------Go 语言使用 error 类型来返回函数执行过程中遇到的错误,如果返回的 error 值为 nil,则表示未遇到错误,否则 error 会返回一个字符串,用于说明遇到了什么错误。其实 error 只是一个接口,定义如下:------------------------------------------------------------type error interface {Error() string }-------------------------------------------------------...

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...