要一直走下去

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Go

摘要:etcd是使用Go语言开发的一个开源的、高可用的分布式key-value存储系统,可以用于配置共享和服务的注册发现 单机etcd使用示例: 下载etcd:`https://github.com/etcd-io/etcd/releases/download/v3.4.9/etcd-v3.4.9-lin 阅读全文
posted @ 2020-07-12 08:34 要一直走下去 阅读(130) 评论(0) 推荐(0)

摘要:没有Context时,如何在主线程中让一个死循环的子goroutine退出?1.设置全局变量,在循环里判断全局变量=1就退出,在main线程中修改全局变量。2.设置全局通道,在main中向通道里放值,在goroutine中判断通道中有没有值(用select多路复用),有值就退出循环有什么缺点?用全局 阅读全文
posted @ 2020-07-09 18:51 要一直走下去 阅读(443) 评论(0) 推荐(0)

摘要:我的源文件在src目录下,下载的第三方依赖也在src目录下,例如go-redis、go-sql-driver 之前是用`go get github.com/Shopify/sarama` 命令下载第三方依赖,不能指定版本,而且放在src目录下 坏处1.拷贝到Git上要全部拷上去2.不同的项目,第三方 阅读全文
posted @ 2020-07-09 18:49 要一直走下去 阅读(134) 评论(0) 推荐(0)

摘要:下载NSQ:https://nsq.io/deployment/installing.html 以下步骤将在本地计算机上运行一个小型NSQ群集,并逐步完成将消息发布,使用和归档到磁盘的过程。 请按照INSTALLING文档中的说明进行操作。 在一个shell中,执行nsqlookupd: $ ./n 阅读全文
posted @ 2020-07-09 14:26 要一直走下去 阅读(531) 评论(0) 推荐(0)

摘要:写脚本时,给脚本加参数 os.Args os.Args为切片类型,是用户传入的参数 $ ./args_demo a b c d args[0]=./args_demo //os.Args[0] args[1]=a //os.Args[1] args[2]=b //os.Args[2] args[3] 阅读全文
posted @ 2020-07-07 21:39 要一直走下去 阅读(266) 评论(0) 推荐(0)

摘要:性能调优首先要对程序进行运行时分析 分析包括四个方面: CPU 画像:报告程序的 CPU 使用情况,按照一定频率去采集应用程序在 CPU 和寄存器上面的数据 Memory 画像(Heap Profile):报告程序的内存使用情况 Block 画像:报告 goroutines 不在运行状态的情况,可以 阅读全文
posted @ 2020-07-07 19:43 要一直走下去 阅读(515) 评论(0) 推荐(0)

摘要:性能测试函数以Benchmark开头,b *testing.B为参数, b.N为执行次数,次数不是固定的,是一秒内能执行的次数,不同的函数 次数不一样 split.go package split import ( "strings" ) func Split(s, sep string) (res 阅读全文
posted @ 2020-07-07 17:13 要一直走下去 阅读(1958) 评论(0) 推荐(0)

摘要:1、测试用例的go文件,和被测试的go文件在同一个包下,以_test.go结尾 2.单元测试函数以Test开头,t *testing.T为参数,无返回值 // calc.go 文件 package calc func Add(a ,b int) int { return a + b } func S 阅读全文
posted @ 2020-07-06 22:10 要一直走下去 阅读(516) 评论(0) 推荐(0)

摘要:UDP协议(User Datagram Protocol)中文名称是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议, 不需要建立连接就能直接进行数据发送和接收,属于不可靠的、没有时序的通信,但是UDP协议的实时性比较 阅读全文
posted @ 2020-07-05 13:19 要一直走下去 阅读(896) 评论(0) 推荐(0)

摘要:Go语言的TCP示例: 实现功能:客户端发送"abc",服务端转为大写返回"ABC" 服务端 package main import ( "net" "strings" "fmt" "bufio" ) func handle(conn net.Conn) { defer conn.Close() / 阅读全文
posted @ 2020-07-05 12:48 要一直走下去 阅读(1169) 评论(0) 推荐(0)

摘要:使用go关键字启动一个goroutine程序员唯一需要做的,是把任务封装成一个函数程序启动之后会创建一个主goroutine去执行(main也是一个goroutine) package main import( "fmt" "sync" ) //开启goroutine将0~20的数发送到ch1中// 阅读全文
posted @ 2020-07-04 01:05 要一直走下去 阅读(632) 评论(0) 推荐(0)

摘要:strconv包实现了基本数据类型与其字符串表示的转换 Atoi() 字符串 转换为 int s1 := "100"i1, err := strconv.Atoi(s1) fmt.Printf("type:%T value:%#v\n", i1, i1) //type:int value:100 I 阅读全文
posted @ 2020-07-03 23:46 要一直走下去 阅读(283) 评论(0) 推荐(0)

摘要: 阅读全文
posted @ 2020-07-03 23:23 要一直走下去 阅读(67) 评论(0) 推荐(0)

摘要:Go语言中的变量是分为两部分的: 类型信息:预先定义好的元信息。 TypeOf 值信息:程序运行过程中可动态变化的。ValueOf import ( "reflect" ) 比较两个引用类型的值是否相等(写单元测试要用),比较值类型用“==”号 例如:比较两个切片的值 是否相等 reflect.De 阅读全文
posted @ 2020-07-03 22:53 要一直走下去 阅读(280) 评论(0) 推荐(0)

摘要:总结: 写的话用 bufio.NewWriter() wirter.WriteString() 可扩展性更强 附 如果用户输绝对路径,就输入绝对路径,输入相对路径就拼成绝对路径 fullPath := path.Join(_filePath, _fileName) if !path.IsAbs(fu 阅读全文
posted @ 2020-07-02 19:26 要一直走下去 阅读(358) 评论(0) 推荐(0)

摘要:包(package) 包中的变量名/函数名/结构体/接口等,首字母大写可以被别的包调用,小写只能在包内使用 Go语言中禁止循环导入包(a中导入b,b中导入a) package "包名" import "从GOPATH/src下开始找起" // 最后一层写到目录(目录就是包),不要写到xx.go,用" 阅读全文
posted @ 2020-07-02 19:07 要一直走下去 阅读(121) 评论(0) 推荐(0)

摘要:类型断言 作用是判断实现该接口的对象是不是某个类型。可以通过打印空接口的值来推断空接口是什么具体类型。可以通过Printf("%T",x)进行打印,那么..有没有什么方法可以在程序运行中得到空接口的具体类型呢?x.(T) 例如:data, ok := a.(string)x:表示类型为interfa 阅读全文
posted @ 2020-07-02 19:04 要一直走下去 阅读(641) 评论(0) 推荐(0)

摘要:接口是一种类型 (实现多态的特性),规定了其他类型的方法,接口既然是一种类型,那可以做为参数和返回值接口的保存分为两部分:动态类型和动态值 type 接口类型名 interface{ 方法名1( 参数列表1 ) 返回值列表1 方法名2( 参数列表2 ) 返回值列表2 …} 接口没有指针接口这一说,只 阅读全文
posted @ 2020-07-02 19:00 要一直走下去 阅读(96) 评论(0) 推荐(0)

摘要:先定义一对嵌套的结构体 //Student 学生 type Student struct { ID int `json:"id"` // "ID"首字母大写是因为要序列化,必须大写,json包里才能访问。 `json:"id"`是让序列化后,"ID"用小写表示 Gender string `json 阅读全文
posted @ 2020-07-02 10:48 要一直走下去 阅读(2018) 评论(0) 推荐(0)

摘要:嵌套结构体 嵌套匿名结构体 //address 地址结构体type address struct { province string city string} //user 用户结构体type user struct { name string gender string //addr addres 阅读全文
posted @ 2020-07-02 10:45 要一直走下去 阅读(1290) 评论(0) 推荐(0)