首页 > 其他分享 >go学习笔记

go学习笔记

时间:2023-08-10 12:07:01浏览次数:44  
标签:www 0xc04204a080 笔记 学习 https go php 指针


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

标签:www,0xc04204a080,笔记,学习,https,go,php,指针
From: https://blog.51cto.com/u_16221639/7032556

相关文章

  • Golang 绘图技术(image/draw包介绍)
     image/draw包仅仅定义了一个操作:通过可选的蒙版图(maskimage),把一个原始图片绘制到目标图片上,这个操作是出奇的灵活,可以优雅和高效的执行很多常见的图像处理任务。1://DrawcallsDrawMaskwithanilmask.2:funcDraw(dstImage,rimage.Rectangle,srcimage.Image......
  • Android Binder 学习(一) 系统服务的Binder 是如何管理的
    Binder是什么?小编的个人理解1.对于系统来说,Binder类似于血管,链接这ServiceManangerActivityManagerServiceActivityTaskManagerService,承载着他们之间的信息的传递2.对于kernel底层来说,binder是驱动,是一种虚拟的底层驱动3.对于Java应用层来说,他是一个封装了一套序......
  • Go语言正则表达式提取网页文本
    为了方便提取,我们会把正则表达式中要提取的数据使用命名方式来书写正则表达式。这个技术在Go语言中如何实现,可以看下面这篇博客:UsingtheGoRegexpPackagehttp://blog.kamilkisiel.net/blog/2012/07/05/using-the-go-regexp-package/简单期间,这里复制其中几个例子的代码:我们期望......
  • Struts 学习笔记1 -Struts Framework 概览
    作者:bruce--Java研究组织Tuesday,January21200311:06AMStruts开始于2000年3月,1.0在2001年7月发布。采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。MVC设计模式把一个系统分成3个相互协调的部分:Model(模型)模型用于封装系统的状态View......
  • Programming abstractions in C阅读笔记:p88-p90
    《ProgrammingAbstractionsInC》学习第44天,p88-p90总结。一、技术总结1.内存分配内存分配可以分为:staticallocation、automaticallocation、dynamicallocation。内存分配使用的函数为:malloc()。二、英语总结1."up to this point"是什么意思?答:point: a particular......
  • 猫狗笔记注释2
    #coding:utf-8importtensorflowastfimportnumpyasnpimportmatplotlib.pyplotaspltimporttimeimportcreate_and_read_TFRecord2asreader2importosX_train,y_train=reader2.get_file("c:\\cat_and_dog_r")#名为reader2的对象,通过get_file方法来获取指定路径下的......
  • 点云分割学习路径
    1.传统点云分割点云分割是根据空间、几何和纹理等特征对点云进行划分,使得同一划分内的点云拥有相似的特征。点云的有效分割是许多应用的前提,例如在三维重建领域,需要对场景内的物体首先进行分类处理,然后才能进行后期的识别和重建。传统的点云分割主要依赖聚类算法和基于随机采样......
  • 【学习笔记】线段树分治
    定义线段树分治是一种解决一类有插入、删除和整体查询操作的问题的方法。它是一种离线做法,通过在线段树上记录操作的时间区间来处理修改对询问的影响。每个操作被看作一个时间区间的修改,并在线段树上进行标记。然后通过深度优先搜索(DFS)依次执行这些操作,直到根节点来回答查询,并在......
  • 做题笔记
    [AT_abc313_d]OddorEven简单题,但是为什么赛场上WA了呢?弱化题目,设\(n=k+1\),发现只需要每一个数不取询问\(k\)次,通过前缀和得出。再设\(k+1\|\n\),发现只需要类似分块即可解决。回到原题,最后的一部分如何计算?我们可以对\([n-k,n]\)这个区间做询问,但是对......
  • go-zero 是如何做路由管理的?
    原文链接:go-zero是如何做路由管理的?go-zero是一个微服务框架,包含了web和rpc两大部分。而对于web框架来说,路由管理是必不可少的一部分,那么本文就来探讨一下go-zero的路由管理是怎么做的,具体采用了哪种技术方案。路由管理方案路由管理方案有很多种,具体应该如何选择,应......