VSCode调试Go程序

有点麻烦...要使用go-delve

还有配置launch.json 啥的

...

2020/11/8 posted in  Go

使用Docker搭建Golang开发环境

2020/10/16 posted in  Go

Gorm操作记录

2020/10/9 posted in  Go

Go 服务部署

Go程序可以进行交叉编译,使得可以在MacOS上进行开发并直接生成在Linux上可执行的文件。

编译linux上执行的程序:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
Read more   2020/10/9 posted in  Go

Golang Gin使用记录

2020/10/9 posted in  Go

使用Go 操作Excel的实践

2020/9/29 posted in  Go

VSCode 修改设置支持Go单元测试支持日志输出

VSCode的配置分为两个高度:

User Settings - 全局配置, 适用于所有的打开的实例
Workspace Settings - 储存在工作区之下并仅适用于本工作区的配置
显然工作区配置优先级会高于用户配置, 在冲突是会重载用户配置

Read more   2020/9/29 posted in  Go

使用 Gorm 创建数据库表的外键

使用约束创建数据库表的时候遇到了一个坑,先来看下文档上推荐的创建表之间关系的示例:

Read more   2020/8/2 posted in  Go

【转】一个有关Golang变量作用域的坑

panic: runtime error: invalid memory address or nil pointer dereference

Read more   2020/7/28 posted in  Go

Golang 编码风格

Read more   2020/7/23 posted in  Go

Golang Web服务常用三方库使用

管理依赖

(dep已经退役 使用 go mod)

$ go get -u github.com/golang/dep/cmd/dep
$ dep init
$ dep ensure -add github.com/go-chi/chi github.com/go-sql-driver/mysql
Read more   2020/7/23 posted in  Go

Go常见并发任务

2020/7/20 posted in  Go

Go并发编程基础概念

协程机制

Thread vs. Groutine

  1. 创建时默认的stack的大小
    • Groutine的Stack初始化大小为2K
  2. 和KSE(Kernel Space Entity)的对应关系

    1. Java Thread 是 1 : 1

      1. 线程之间发生context切换的时候回直接造成内核对象的切换,造成很大的消耗
    2. Groutine 是 M:N

Read more   2020/7/5 posted in  Go

Go中远程的包的引入和依赖管理

概念:

  1. 基本复用模块单元(以首字符大写来表明可被包外代码访问)
  2. 代码的package可以和所在的目录不一致
  3. 同一目录里的Go代码的package要保持一致
Read more   2020/7/5 posted in  Go

Go 编写好的错误处理

Go的错误机制

  1. 没有异常机制
  2. error类型实现了error接口
  3. 可以通过errors.New来快速创建错误实例
Read more   2020/7/5 posted in  Go

Go “面向对象”

Go 语言是不支持继承的

实例创建和初始化

type Employee struct {
    Id string
    Name string
    Age int
}
e := Employee{"0", "Bob", 20}
e1 := Employee{Name: "Mike", Age: 30}
e2 := new(Employee) //这里返回的引用/指针, 相当于 e:=&Employee{}
e2.Id = "2" //通过实例的指针访问成员不需要使用->
Read more   2020/6/10 posted in  Go

Go 函数

函数是一等公民

  1. 可以有多个返回值
  2. 所有参数都是值传递
  3. 函数可以作为变量的值
  4. 函数可以作为参数和返回值
Read more   2020/6/10 posted in  Go

Go入门基本语法

规范

使用测试模块需要使用 _test作为文件名称的结尾,例如 constant_test.go
在测试模块中编写测试函数,函数名称需要以 Test开头, 格式如下:

func TestString(t *testing.T) {

}
Read more   2020/5/27 posted in  Go