0
点赞
收藏
分享

微信扫一扫

go学习笔记

快乐码农Alan007 2023-08-10 阅读 70


sql 转gorm https://sql2gorm.mccode.info/

json 转 struct https://mholt.github.io/json-to-go/

驼峰转下划线 https://www.nhooo.com/tool/camelcase/

xml 转结构体 http://www.cyeam.com/tool/xml2gostruct

go 包 https://pkg.go.dev/

go 学习网站 https://www.topgoer.com/

                   https://www.topgoer.cn/

下载地址:https://golang.google.cn/dl/

选 go1.18.4.linux-amd64.tar.gz

go env -w GO111MODULE=on   

go env -w GOPROXY=https://goproxy.cn,direct

go 环境变量: 这只是暂时添加

可以编辑 ~/.bash_profile 或者 /etc/profile,并将以下命令添加该文件的末尾,这样就永久生效了

如果root 与 普通用户 gopath不一致问题  可以精确路径设置


export GOROOT=/usr/local/go

export GOPATH=$GOROOT/goproject

export PATH=$PATH:$GOROOT/bin

export PATH=$PATH:$GOPATH/bin


最后执行:source ~/.bash_profile 或者 source /etc/profile

GOPATH 路径下;新建src 放项目


设置go 软连接

sudo ln -fs /usr/local/go/bin/go /usr/local/bin/go


优势:利用了服务器的多核能力,内存占用降低

1、相较php go运行更快;相同用户数下可以提供更高的承载与更小的硬件投入

2、比php更容易部署,go静态编译好后将编译文件放到服务即可直接运行

3、比php更安全,php弱类型语言,go是 一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言

4、Go 语言运行时会参与调度 goroutine,并将 goroutine 合理地分配到每个 CPU 中,最大限度地使用CPU性能。开启一个goroutine的消耗非常小(大约2KB的内存),你可以轻松创建数百万个goroutine。

缺点:go开发速度不如php,php某些方面可以节省代码量


package main

import "fmt"

func main() {

    var p *int

    p = new(int)

    *p = 1

    fmt.Println(p, &p, *p)

}

输出

0xc04204a080 0xc042068018 1


在 Go 中 * 代表取指针地址中存的值,& 代表取一个值的地址

对于指针,我们一定要明白指针储存的是一个值的地址,但本身这个指针也需要地址来储存

如上 p 是一个指针,他的值为内存地址 0xc04204a080

而 p 的内存地址为 0xc042068018

内存地址 0xc04204a080 储存的值为 1

地址 0xc042068018 0xc04204a080

值 0xc04204a080 1


端口号被占用 :

lsof -i:8080

kill -9 +进程id


goctl  命令生成的文件 不会自动传到虚拟机里;用手动上传一下 


go 错误查看:

panic.go 下边就是报错位置


go学习笔记_技术

  • 字符串有两个域 (一个指向字符串数据的指针和一个长度)
  • 切片有三个域 (一个指向底层数组的指针,一个长度,一个容量)
  • 接口有两个域 (一个指向类型的指针和一个指向值的指针)


直接运行测试方法

go test -run TestPassEncode -v

举报

相关推荐

0 条评论