go
liao__ran
这个作者很懒,什么都没留下…
展开
-
go源码库学习之bufio库
go源码库学习之bufio库原创 2022-12-12 10:25:05 · 484 阅读 · 0 评论 -
go 操作 zabbix API
自定义 zabbix API库,然后使用go 调用该库 操作 zabbix API原创 2022-11-11 16:02:11 · 819 阅读 · 0 评论 -
go tar 打包目录和单个文件
package mainimport ( "archive/tar" "bytes" "io" "fmt" "io/ioutil" "log" "reflect" "os" "time")// 文件类型const ( TypeReg = tar.TypeReg // 普通文件 TypeLink = tar.TypeLink // 硬链接 TypeSymlink = tar.TypeS.原创 2021-11-26 10:51:26 · 910 阅读 · 0 评论 -
json-iterator 库函数
// 概述// 包jsoniter实现RFC4627中定义的JSON编码和解码,并提供与标准lib encoding/JSON语法相同的接口。从encoding/json到jsoniter的转换无非是用jsoniter和变量类型声明(如果有的话)替换包。jsoniter接口与使用标准库的代码具有100%的兼容性。// “JSON和Go”(https://golang.org/doc/articles/json_and_go.html)描述封送/解组如何在任意或预定义的json对象和字节之间进行操作,它.原创 2021-11-18 16:15:17 · 1499 阅读 · 0 评论 -
go第三方 goroutine 池 库 ants
package mainimport ( "fmt" "sync" "sync/atomic" "time" "github.com/panjf2000/ants/v2")var sum int32func myFunc(i interface{}) { n := i.(int32) atomic.AddInt32(&sum, n) fmt.Printf("run with %d\n", n)}func demoFunc() { time.Sleep(10 ..原创 2021-11-03 11:51:25 · 542 阅读 · 0 评论 -
go第三方定时任务库 cron
package mainimport ( "fmt" "github.com/robfig/cron/v3" "log" "os" "time")func main() { simpleUse()}func simpleUse() { // 创建定时任务对象,并加载自定义的日志格式 c := cron.New( cron.WithLogger( cron.VerbosePrintfLogger(log.New(os.Stdout, "cron: ", log..原创 2021-11-02 16:56:25 · 409 阅读 · 0 评论 -
go爬虫框架 goquery 选择器
//参考博客 https://www.flysnow.org/2018/01/20/golang-goquery-examples-selector.html#%E9%80%89%E6%8B%A9%E5%99%A8%E6%88%96%E8%BF%90%E7%AE%97package mainimport ( "fmt" "github.com/PuerkitoBio/goquery" "log" "strings")func HtmlElement() {html := `&l..原创 2021-09-24 17:22:00 · 662 阅读 · 0 评论 -
go 第三方库 Gorm使用示例
package mainimport ( "fmt" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" "time")type Model struct { ID uint `gorm:"primary_key"` CreatedAt time.Time UpdatedAt time.Time DeletedAt *time.Time}type User.原创 2021-09-23 15:55:54 · 1190 阅读 · 0 评论 -
go第三方日志库 Zap
···javascript //代码高亮显示例子 var aa= 'this'; var bb= 'that'; let cc= aa+ bb; ···原创 2021-09-23 15:44:32 · 948 阅读 · 0 评论 -
Go标准库各个库的用途
archive tar/zip压缩操作bufio 有缓冲的I/Obytes 操作[]byte字节片compress bzip2/flate/gzip/lzw/zlib压缩操作container 堆操作/双向链表/环形链表context 上下文类型crypto 常用的密码(算法)database/sql 数据库接口encoding 数据编码errors 创建错误函数expvar 公共变.原创 2021-03-15 21:18:49 · 226 阅读 · 0 评论 -
go库函数之-bytes-使用示例
// Copyright 2011 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package bytes_testimport ( "bytes" "encoding/base64" "fmt" "io" "os" "sort".原创 2021-03-15 20:29:59 · 891 阅读 · 0 评论 -
go库函数之-path-使用示例
########################################################D:\go\go\go库源码\源码库测试文件集合\path-example_test.go// Copyright 2012 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENS.原创 2021-03-11 17:07:00 · 385 阅读 · 0 评论 -
go库函数之-regexp-使用示例
############################################################D:\go\go\go库源码\源码库测试文件集合\regexp-example_test.go// Copyright 2013 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the .原创 2021-03-11 15:21:51 · 1885 阅读 · 0 评论 -
go库函数之-strings-使用示例
###########################################################D:\go\go\go库源码\源码库测试文件集合\strings-example_test.go// Copyright 2012 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the .原创 2021-03-11 15:14:13 · 260 阅读 · 0 评论 -
go库函数之-time-使用示例
#############################################################D:\go\go\go库源码\源码库测试文件集合\time-example_test.go// Copyright 2011 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the L.原创 2021-03-11 15:10:40 · 657 阅读 · 0 评论 -
go库函数之-unicode-使用示例
###############################################################D:\go\go\go库源码\源码库测试文件集合\unicode-example_test.go// Copyright 2015 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in .原创 2021-03-11 15:07:18 · 1174 阅读 · 0 评论 -
Go语言实战--笔记3
互斥锁//展示如何使用互斥锁来定义一段//需要同步访问的代码临界区资源的同步访问package mainimport ( "fmt" "runtime" "sync")var ( //counter 是所有goroutine都要增加其值的变量 counter int //wg 用来等待程序结束 wg sync.WaitGroup //mutex 用来定义一段代码的临界区 mutex sync.Mutex)//main 是go程序入口f.原创 2021-03-05 15:06:01 · 173 阅读 · 0 评论 -
Go语言实战--笔记2
方法方法能给用户定义的类型添加新的行为,方法实际上也是函数如果一个函数有接收者,这个函数被称为方法//该示例展示如何声明并使用方法package mainimport( "fmt")//user 在程序里定义一个用户类型type user struct { name string email string}//notify 使用值接收者实现了一个方法func (u user) notify() { fmt.Printf("Sending user Email .原创 2021-03-05 15:04:07 · 234 阅读 · 0 评论 -
Go语言实战--笔记1
打包和工具链包包名惯例给包命的惯例是使用包所在目录的名字因导入包时使用的是全路径,因此并不需要所有的名字都与别的包不同main 包程序编译时,会使用声明main 包的代码所在的目录的目录名作为二进制可执行文件的文件名导入远程导入命名导入导入的两个包的名字相同,可以命令一个别名代替一个包的名字,示例如下:import ( "fmt" myfmt "myfmt/fmt")func mian() { fmt.Println("Standard.原创 2021-03-05 15:01:39 · 164 阅读 · 0 评论 -
go selenium操作
package mainimport ( "fmt" "github.com/tebeka/selenium" "github.com/tebeka/selenium/chrome" "time")func main() { const ( seleniumPath = `D:\Python3\python3.7\chromedriver` port = 9515 ) //如果seleniumServer没有..原创 2021-02-23 14:34:00 · 1491 阅读 · 0 评论 -
Go语言并发之道--笔记4
context包示例:func main() { var wg sync.WaitGroup done := make(chan interface{}) defer close(done) wg.Add(1) go func() { defer wg.Done() if err := printGreeting(done); err != nil { fmt.Printf("%v",err) return .原创 2021-01-19 10:51:42 · 127 阅读 · 0 评论 -
Go语言并发之道--笔记3
pipeline可以用来在系统中形成抽象的一种工具,尤其是程序需要流式处理或者批处理数据一系列的数据输入,执行操作并将结果数据传回的系统,称这些操作是pipeline的一个stage构建一个pipeline的tagepipeline stage函数multiply := func(values []int,multiplier int) []int { multipliedValues := make([]int,len(values)) for i,v := range val..原创 2021-01-19 10:51:05 · 165 阅读 · 0 评论 -
Go语言并发之道--笔记2
池:池(Pool)是Pool模式的并发安全实现Pool模式是一种创建和提供可供使用的固定数量实例或Pool实例的方法Pool的主接口方法是它的Get方法示例:myPool := &sync.Pool{ new: func() interface{} { fmt.Println("Creating new instance.") return struct{}{} },}myPool.Get() //调用Pool的get方法,调用将执行Pool中.原创 2021-01-19 10:50:00 · 123 阅读 · 0 评论 -
Go语言并发之道--笔记1
1、竞争跳条件当两个或对各操作必须按正确的顺序执行,当程序未保证这个顺序,就会发生竞争条件示例:var data intgo func() { //使用关键字go并发的运行一个函数,即goroutine data++}()if data==0 { fmt.Printf("the value is %v.\n",data)}data数据的访问循序不确定,即data++ 和 data==0,会产生多种输出结果使用休眠来调整数据的竞争性问题,从表面上看,解决了竞争性问题,但.原创 2021-01-19 10:48:32 · 259 阅读 · 0 评论 -
go调用zabbix-API获取应用集
/*filename: application-get.goauthor: gaohaixiangwritetime:20200416*/package mainimport ( "encoding/json" "fmt" "zabbix" //自定义库zabbix.go)//从api返回的数据中提取需要的关键字段及数据,api返回的数据如下// {2...原创 2020-04-16 17:32:23 · 928 阅读 · 3 评论 -
go 自定义zabbix API库
/*filename: zabbix.goauthor: gaohaixiangwritetime:20200416该脚本为定义go使用zabbix API的库文件,使用事将该文件和go库文件放在一起,否则导入zabbix这个库文件会报错放入go安装路径下的 src 文件下的新建zabbix的文件夹下如:C:\Go\src\zabbix\zabbix.go*/package z...原创 2020-04-16 17:29:22 · 532 阅读 · 0 评论