go语言零碎笔记

Posted lishuangquan1987

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言零碎笔记相关的知识,希望对你有一定的参考价值。

net拨号时,如果服务端没打开,返回的net.Conn对象为空

t, _ := net.Dial("tcp", "127.0.0.1:12345")
fmt.Println(t==nil)
fmt.Printf("关闭前:%v", t)
t.Close()
fmt.Printf("关闭后:%v", t)
time.Sleep(time.Second * 5)
fmt.Printf("关闭后,休眠5s:%v", t)

当服务端:127.0.0.1:12345没打开时,打印如下:

可以看到t==niltrue,所以小心对net.Conn的方法调用

vscode调试go的配置文件


    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        
            "name": "Launch Package",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            // "program": "$fileDirname"
            "program": "$workspaceFolder/main.go",
        
    ]

cgo: C compiler “gcc” not found: exec

系统:Win11 64位。 go 1.18.1
当引用了gorm操作Sqlite时,go build报如下错误:
cgo: C compiler “gcc” not found: exec: “gcc”: executable file not found in %PATH%
解决办法:

  • 参考文章:
    https://blog.csdn.net/weixin_42586723/article/details/121057647
  • 具体过程:
  1. 到网址:https://sourceforge.net/projects/mingw-w64/files/
    下载x86_64-win32-seh:
  2. 解压下载的文件:x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z
  3. 将解压后的bin的绝对路径加入环境变量Path
    例如我的bin绝对路径是:D:\\Download\\x86_64-8.1.0-release-win32-seh-rt_v6-rev0\\mingw64\\bin,我需要将它加入到Path环境变量:

4. 验证是否安装好
打开终端,输入gcc -v:

4. 编译go
go build
注意:如果安装gcc之前打开了VSCode没有关闭过,需要关闭后再打开才能编译不报错

Windows下编译go到Centos运行

1.VSCode新建终端:

2.从PowerShell切换到Command Prompt
注意:在Powershell中不能这样编译go,会不成功

3.依次敲入如下命令:

set GOOS=linux
set GOARCH=amd64
go build

就可以看到生成了一个文件
注意:只要此终端Command Prompt没有变比,以后只需要输入go build就行,如果关闭之后重新打开,则需要重新设置GOOSGOARCH

以上是关于go语言零碎笔记的主要内容,如果未能解决你的问题,请参考以下文章

go语言零碎笔记

R语言学习笔记(十八):零碎知识点46-50

Shell脚本笔记一些零碎的基础知识

《Go语言精进之路》读书笔记 | 汇总

《Go语言精进之路》读书笔记 | 理解Go语言的设计哲学

《go语言高级编程》笔记