Golang
CAPTIAN船长
19910825
展开
-
golang类之间方法调用
package mainimport "fmt"import "reflect"type C struct { A string}func (c *C) Read() error { fmt.Println("C.Read" ) return nil }type D struct { B string}func (d *D) Read() string { fmt.Println("D.Read" ) return d.B }func (c *C) ReadOther原创 2020-07-03 16:13:03 · 1884 阅读 · 0 评论 -
Golang 继承,多态
package mainimport "fmt"type P struct { PA string PB string PI interface{}}func (p *P) Read() error { fmt.Println("P.Read") fmt.Println("P.PI:",p.PI) return nil}type C struct { P PI原创 2020-07-03 12:56:49 · 372 阅读 · 0 评论 -
golang channel 使用方法
Golang Channel1.A goroutine is a lightweight thread managed by the Go runtime.go f(x, y, z)starts a new goroutine runningf(x, y, z)The evaluation of f, x, y, and z happens in the current gorou...原创 2020-04-12 09:01:15 · 836 阅读 · 0 评论 -
Golang Map元素取址问题: cannot assign to struct field XXXX in map
问题描述 :golang 中对 map 类型中的 struct 赋值报错package mainimport "fmt"func main() { type Entity struct { Value string } entityMap := make(map[string]Entity, 0) entityMap["cat"] = Entity{Value: "This...原创 2020-03-22 22:44:51 · 10761 阅读 · 2 评论 -
Golang的协程详解
一、Golang 线程和协程的区别 备注:需要区分进程、线程(内核级线程)、协程(用户级线程)三个概念。 进程、线程 和 协程 之间概念的区别 对于进程、线程,都是有内核进行调度,有 CPU 时间片的概念,进行抢占式调度(有多种调度算法) 对于协程(用户级线程),这是对内核透明的,也就是系统并不知道有协程的存在,是完全由用户自己的程序进行调度的,因为是由用户程序自己控制...转载 2020-02-23 23:19:35 · 501 阅读 · 0 评论 -
Golang数据库框架库
Go语言世界中,beego orm、gorm、sqlx、gorp、xorm是我已知在Github中stars数最多Go数据库框架,这几个都是Go语言世界中老牌数据库框架库。优秀链接: https://my.oschina.net/u/168737/blog/1531834...原创 2019-12-31 17:38:41 · 2392 阅读 · 0 评论 -
go-redis 连接池源码分析
1、建立连接和关闭连接 2、池子里面取Conn的管理 3、监控统计 4、整个Pooler池子的关闭结构体type ConnPool struct { opt *Options //初始化的配置项 dialErrorsNum uint32 // atomic 连接错误次数 lastDialError error //连接错误的最后一次的错误类型 lastD...原创 2019-12-27 13:03:45 · 598 阅读 · 0 评论 -
Golang中使用C/C++代码
go 调用 c/c++:C/C++代码直接写在go文件中使用,简单直观导入动态库 .so 或 dll 的形式,最安全但是很不爽也比较慢的直接引用 c/c++ 文件的形式,层次分明,容易随时修改看结果的1.1 直接嵌套在Go语言中Example:package main/*// C#include <stdio.h> int add(int a,int b){ ...原创 2019-09-16 18:50:01 · 1997 阅读 · 0 评论 -
golang二维map的使用
Map1.1 mapMap是golang中的一种数据类型,将键与值绑定到一起。可以通过键获取对应的值,map使用hash实现,可以快速的通过键找到对应的值。类型表示:map[keyType][valueType] 例如:age' := make(map[string]int) 使用内置make函数来初始化map,而且只能使用make来初始化map,因为为一个为nil的map,添加元素,无任...原创 2019-05-03 13:22:35 · 11384 阅读 · 2 评论 -
Go中的goroutine理解
goroutine 机制Go语言支持goroutine,每个goroutine需要能够独立运行,所以它们必须都有自己的栈。假如每个goroutine分配固定栈大小并且不能增长,太小则会导致溢出,太大又会浪费空间,无法存在许多的goroutine。为了解决这个问题,goroutine可以初始时只给栈分配很小的空间,然后随着使用过程中的需要自动地增长。这就是为什么Go可以开千千万万个gorouti...原创 2018-07-01 16:32:19 · 560 阅读 · 0 评论