![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
文章平均质量分 54
Geek猫
这个作者很懒,什么都没留下…
展开
-
golang package io
io包提供了对I/O原语的基本接口。本包的基本任务是包装这些原语已有的实现(如os包里的原语),使之成为共享的公共接口,这些公共接口抽象出了泛用的函数并附加了一些相关的原语的操作。因为这些接口和原语是对底层实现完全不同的低水平操作的包装,除非得到其它方面的通知,客户端不应假设它们是并发执行安全的。type Writer interface { Write(p []byte) (n in...原创 2019-01-15 19:34:13 · 196 阅读 · 0 评论 -
golang package viper
官方网站: https://godoc.org/github.com/spf13/vipergo get -u -v github.com/spf13/viperfunc (v *Viper) ConfigFileUsed() stringfunc (v *Viper) Unmarshal(rawVal interface{}, opts ...DecoderConfigOption) er...原创 2019-01-02 16:35:09 · 732 阅读 · 0 评论 -
golang package fmt
func Fprintln(w io.Writer, a ...interface{}) (n int, err error)Fprintln采用默认格式将其参数格式化并写入w。总是会在相邻参数的输出之间添加空格并在输出结束后添加换行符。返回写入的字节数和遇到的任何错误。package mainimport ( "fmt" "os")func main(){ fmt.Fpri...原创 2019-01-02 15:04:04 · 191 阅读 · 0 评论 -
golang package runtime
import “runtime”func NumCPU() intNumCPU 返回本地机器的逻辑CPU个数。func GOMAXPROCS(n int) intGOMAXPROCS设置可同时执行的最大CPU数,并返回先前的设置。 若 n < 1,它就不会更改当前设置。本地机器的逻辑CPU数可通过 NumCPU 查询。本函数在调度程序优化后会去掉。package maini...原创 2019-01-02 14:56:41 · 343 阅读 · 0 评论 -
golang package heap
heap包提供了对任意类型(实现了heap.Interface接口)的堆操作。(最小)堆是具有“每个节点都是以其为根的子树中最小值”属性的树。树的最小元素为其根元素,索引0的位置。heap是常用的实现优先队列的方法。要创建一个优先队列,实现一个具有使用(负的)优先级作为比较的依据的Less方法的Heap接口,如此一来可用Push添加项目而用Pop取出队列最高优先级的项目。type Int...原创 2019-01-11 15:52:31 · 283 阅读 · 0 评论 -
golang cobra 命令行库
go get -v github.com/spf13/cobra/cobracobra既是一个用来创建强大的现代CLI命令行的golang库,也是一个生成程序应用和命令行文件的程序。cobra提供的功能简易的子命令行模式,如 app server, app fetch等等完全兼容posix命令行模式嵌套子命令subcommand支持全局,局部,串联flags使用Cobra很容易的生成...原创 2018-12-25 18:01:18 · 562 阅读 · 0 评论 -
golang package syscall
import “syscall”type Rlimit struct { Cur uint64 Max uint64}RLIMIT_NOFILE = 0x7func Getrlimit(resource int, rlim *Rlimit) (err error)package mainimport ( "fmt" "s...原创 2019-01-03 20:19:39 · 1864 阅读 · 0 评论 -
golang bytes
func HasPrefix(s, prefix []byte) bool判断s是否有前缀切片prefix。package mainimport ( "bytes" "fmt")func main() { // 判断字符串是否包含"hel" fmt.Println(bytes.HasPrefix([]byte("hello"), []byte("hel"))) fmt.P...原创 2018-12-23 19:27:22 · 399 阅读 · 0 评论 -
golang urfave/cli 命令包
官方文档 : https://godoc.org/github.com/urfave/cli提供了一个命令行框架。go get github.com/urfave/cliimport “github.com/urfave/cli”导入包cli.NewApp()创建一个实例调用Run()方法就实现了一个最基本的命令行程序了app.Action 指定入口函数package main...原创 2018-12-28 19:23:52 · 5407 阅读 · 3 评论 -
golang error
type error interface { Error() string}内建error接口类型是约定用于表示错误信息,nil值表示无错误。package errorsimport “errors”errors包实现了创建错误值的函数。package mainimport ( "fmt" "time")// MyError is an error implem...原创 2018-12-23 10:23:43 · 1074 阅读 · 0 评论 -
golang chan
package mainimport "fmt"func main() { c := make(chan int, 1) select { case c <- 10 : // 写入chan } select { case c <- 20 : // 写入chan,写不进去就丢弃 default: } value , ok := <-...原创 2018-12-11 19:27:48 · 623 阅读 · 0 评论 -
golang package reflect
reflect包实现了运行时反射,允许程序操作任意类型的对象。典型用法是用静态类型interface{}保存一个值,通过调用TypeOf获取其动态类型信息,该函数返回一个Type类型值。调用ValueOf函数返回一个Value类型值,该值代表运行时的数据。Zero接受一个Type类型参数并返回一个代表该类型零值的Value类型值。import “reflect”type Type inte...原创 2019-01-12 08:53:17 · 532 阅读 · 0 评论 -
golang package atomic
atomic包提供了底层的原子级内存操作,对于同步算法的实现很有用。import “sync/atomic”func LoadUint64(addr *uint64) (val uint64)LoadUint64原子性的获取*addr的值。func StoreUint64(addr *uint64, val uint64)StoreUint64原子性的将val的值保存到*addr。...原创 2019-01-07 14:44:24 · 394 阅读 · 0 评论 -
golang gopkg.in/fatih/set.v0
golang gopkg.in/fatih/set.v0提供了通用集数据结构的线程安全和非线程安全实现。官方文档:https://gopkg.in/fatih/set.v0https://godoc.org/gopkg.in/fatih/set.v0go get gopkg.in/fatih/set.v0import “gopkg.in/fatih/set.v0”...原创 2019-01-09 19:36:38 · 1492 阅读 · 0 评论 -
golang package bufio
bufio包实现了有缓冲的I/O。它包装一个io.Reader或io.Writer接口对象,创建另一个也实现了该接口,且同时还提供了缓冲和一些文本I/O的帮助函数的对象。func NewReader(rd io.Reader) *ReaderNewReader创建一个具有默认大小缓冲、从r读取的*Reader。...原创 2019-01-15 11:03:51 · 290 阅读 · 0 评论 -
golang naoina/toml
包toml使用反射对toml配置格式进行编码和解码。文档: https://gowalker.org/github.com/naoina/tomlgo get github.com/naoina/tomlexample.toml# This is a TOML document. Boom.title = "TOML Example"[owner]name = "Lance Up...原创 2019-01-15 10:51:18 · 367 阅读 · 0 评论 -
go-metrics
go-metrics — 对Go应用进行代码级的打点监控测量源码 : https://github.com/rcrowley/go-metricsgo get github.com/rcrowley/go-metricsgo get github.com/vrischmann/go-metrics-influxdb原创 2019-01-09 10:40:28 · 1388 阅读 · 0 评论 -
golang package unsafe
unsafe包提供了一些跳过go语言类型安全限制的操作。import “unsafe”type ArbitraryType intArbitraryType在本文档里表示任意一种类型,但并非一个实际存在与unsafe包的类型。type Pointer *ArbitraryTypePointer类型用于表示任意类型的指针。有4个特殊的只能用于Pointer类型的操作:任意类型的指...原创 2019-01-09 10:39:33 · 225 阅读 · 0 评论 -
golang package stack
包堆栈实现了捕获、操作和格式化,提供了比runtime包更简单的API。官方文档: https://godoc.org/github.com/go-stack/stackimport “github.com/go-stack/stack”package mainimport ( "fmt" "github.com/go-stack/stack")func main() { ...原创 2019-01-08 15:27:50 · 1544 阅读 · 0 评论 -
golang package path
package filepathfilepath包实现了兼容各操作系统的文件路径的实用操作函数。import “path/filepath”func Join(elem ...string) stringJoin函数可以将任意数量的路径元素放入一个单一路径里,会根据需要添加路径分隔符。结果是经过简化的,所有的空字符串元素会被忽略。package mainimport ( &quot;fm...原创 2019-01-03 12:01:48 · 1174 阅读 · 0 评论 -
golang package os
import “os”func Getenv(key string) stringGetenv检索并返回名为key的环境变量的值。如果不存在该环境变量会返回空字符串。root@vm:~# echo $HOME/rootpackage mainimport ( &amp;quot;fmt&amp;quot; &amp;quot;os&amp;quot; &amp;quot;os/user&am原创 2019-01-03 11:46:20 · 294 阅读 · 0 评论 -
golang package pflag
官方文档 : https://godoc.org/github.com/spf13/pflagimport “github.com/spf13/pflag”package mainimport ( "fmt" "github.com/spf13/pflag")func main() { // 声明了一个整数标志,-flagname,存储在指针ip中,类型为*int。 var...原创 2019-01-03 10:17:09 · 751 阅读 · 0 评论 -
golang package signal
signal包实现了对输入信号的访问。import “os/signal”func Notify(c chan<- os.Signal, sig ...os.Signal)Notify函数让signal包将输入信号转发到c。如果没有列出要传递的信号,会将所有输入信号传递到c;否则只传递列出的输入信号。signal包不会为了向c发送信息而阻塞(就是说如果发送时c阻塞了,signal包...原创 2019-01-07 15:43:01 · 206 阅读 · 0 评论 -
golang package time
time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。import “time”type Ticker struct { C <-chan Time // 周期性传递时间信息的通道 // 内含隐藏或非导出字段}Ticker保管一个通道,并每隔一段时间向其传递"tick"。func NewTicker(d Duration) *TickerNewTi...原创 2019-01-07 14:52:02 · 293 阅读 · 1 评论 -
golang 拷贝实现
拷贝package mainimport "fmt"type TestCopy struct { a uint64}func (n *TestCopy) copy() *TestCopy { copy := *n return &copy}func main() { var n TestCopy n.a = 10 cn := n.copy() fmt...原创 2018-12-22 13:44:52 · 1763 阅读 · 0 评论 -
golang time包
import “time”定时器type Ticker struct { C &lt;-chan Time // 周期性传递时间信息的通道 r runtimeTimer}Ticker保管一个通道,并每隔一段时间向其传递"tick"。func NewTicker(d Duration) *TickerNewTicker返回一个新的Ticker,该Ticker包含...原创 2018-12-21 13:57:05 · 203 阅读 · 0 评论 -
golang 切片
定义切片 var identifier []type var slice1 []type = make([]type, len) 或 slice1 := make([]type, len) make([]T, length, capacity) 这里 len 是数组的长度并且也是切片的初始长度, capacity是切片的初始容量切片初始化 ...原创 2018-12-21 11:43:43 · 183 阅读 · 0 评论 -
golang sort 排序
func Float64s(a []float64) // Float64s 以升序排序 float64 切片func Float64sAreSorted(a []float64) bool // Float64sAreSorted 判定 float64 切片是否已经进行排序func Ints(a []int) ...原创 2018-11-29 13:59:16 · 1647 阅读 · 0 评论 -
golang goleveldb
源码 : https://github.com/syndtr/goleveldb/文档 : https://godoc.org/github.com/syndtr/goleveldb下载包 : go get github.com/syndtr/goleveldb/leveldbpackage mainimport ( "fmt" "github.com/syndtr/gol...原创 2018-11-15 11:05:09 · 2632 阅读 · 2 评论 -
golang ... 用法
package mainimport "fmt"func main() { var st = []string{ "hm", "hn", "hw", } var st2 = []string{ "qm", "qn", "qw", } st=append(st, "hello") fmt.Println(st) // ...原创 2018-11-14 16:47:29 · 150 阅读 · 0 评论 -
golang interface
import ( "fmt")type user struct { name string emial string}type notifier interface{ notify() change()}func (u user) notify() { fmt.Printf("name : %s\nemial : %s\n",u.name,u.emial)...原创 2018-11-14 11:25:26 · 116 阅读 · 0 评论 -
golang 方法
方法可以给自定义类型增加行为package mainimport "fmt"type user struct { name string email string}func (u user) notify() { fmt.Printf("name:%s\nEmail:%s\n",u.name, u.email)}// 指针可以修改值func (u *user) s...原创 2018-11-14 10:58:17 · 140 阅读 · 0 评论 -
golang struct
三种方式初始化结构体package mainimport ( "fmt")type user struct { name string email string ext int privileged bool}func main() { // 声明user类型的变量 var bill user fmt.Println(bill) // 使用user类型的...原创 2018-11-14 10:45:38 · 152 阅读 · 0 评论 -
golang-lru 使用方法
package mainimport ( "fmt" "github.com/hashicorp/golang-lru")func main() { kvch, err := lru.New(3) fmt.Println(kvch, err) kvch.Add("1", "9") kvch.Add("2", "8") kvch.Add("3&q原创 2018-11-14 10:26:56 · 2287 阅读 · 0 评论 -
ubuntu16.04 安装goland
cd GoLand-2018.2.3/bin/sudo ./goland.sh原创 2018-11-12 11:01:03 · 3523 阅读 · 0 评论 -
VSCode 快捷键
添加删除注释:Ctrl+K Ctrl+C 添加注释Ctrl+K Ctrl+U 删除注释返回上一级,或下一级Ctrl + Alt + -Ctrl + Shift + -展开所有区域代码Ctrl+K 、Ctrl+J折叠所有区域代码Ctrl+K、Ctrl+0显示大纲Ctrl+Shift+O...原创 2018-11-06 16:37:34 · 183 阅读 · 0 评论 -
ubuntu16.04 安装go
GO下载: https://golang.google.cn/dl/安装: sudo tar -xvf go1.10.3.linux-amd64.tar.gz -C /opt/配置:sudo vim /etc/profile export GOROOT=/opt/go export GOPATH=/home/ubunt...原创 2018-11-06 14:57:06 · 12658 阅读 · 0 评论 -
golang 环境搭建
下载地址:https://golang.google.cn/dl/下载:go1.10.3.windows-amd64.msi 安装新建文件环境配置查看环境变量GOROOT : golang安装目录 D:\GoGOPATH :保存源码路径,开发代码路径,如F:\work\goCode在环境变量 PATH下添加 : D:\Go\bin 和 F:\work\goCode\bin...原创 2018-08-17 20:21:29 · 21516 阅读 · 3 评论 -
golang log日志
const ( // 字位共同控制输出日志信息的细节。不能控制输出的顺序和格式。 // 在所有项目后会有一个冒号:2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message Ldate = 1 << iota // 日期:2009/01/23 Ltime ...原创 2018-12-04 15:54:23 · 4832 阅读 · 0 评论 -
gloang map
package mainimport ( "fmt")var a map[string][]bytefunc test(key string, value []byte) { if value == nil { a[key] = nil } else { a[key] = value }}var b = []byte{1, 2, 3}var c = []by...原创 2018-12-04 16:28:38 · 212 阅读 · 0 评论