Go语言 踩坑录(报错锦集)
2023-09-11 14:15:23 时间
# 设置cmd代理
set http_proxy=http://127.0.0.1:10809
set https_proxy=http://127.0.0.1:10809
set https_proxy=socks5://127.0.0.1:10808
set http_proxy=socks5://127.0.0.1:10808
# git
git config --global http.proxy socks5://127.0.0.1:1080 # Recover git global config: git config --global --unset http.proxy
# Golang:Delve版本太低无法Debug
Version of Delve is too old for this version of Go (maximum supported version 1.13, suppress this error with --check-go-version=false)
cause: dlv版本低
solution:直接去官网download https://github.com/go-delve/delve
替换你go目录下的 %GOPATH%\src\github.com\go-delve 这个目录即可
# Go程序报错1
X:\PycharmProjects\Project\TmpTest\GO_tmp\.vscode\Temp_Go\frist_go.go:7:6: main redeclared in this block previous declaration at X:\PycharmProjects\Project\TmpTest\GO_tmp\.vscode\Temp_Go\demo_1.go:13:6
exit status 2
Process exiting with code: 1
cause:同一个目录下面不能有个多 package main
solution:新建一个目录放置这个第二次调用main的代码
# Go程序报错2
fatal error: all goroutines are asleep - deadlock!
cause: 产生死锁,超出管道设定容量
solution:扩大设定管道的容量或者减少超过的管道
# Go程序报错3
package main
import "fmt"
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}
func main() {
fmt.Println("result is -->: ", split(17)) // 这个地方限制了仅有一个返回值
}
# command-line-arguments
.\compile19.go:12:24: multiple-value split() in single-value context
cause: 返回值有多个值
solution: 两种改法:
1) 直接把前面的字符型注释清空,仅保留后面有多个值反馈的函数
2) 把多值的函数内容单独赋值给变量,在输出位置单独应用每个变量
# Go程序报错4
Tips: 一个关于编译简写定义变量出错提示
syntax error: non-declaration statement outside function body
cause: 在全局变量使用了简写的变量定义和赋值
solution: 使用完整的定义方式
# 代码演示
1 package main
2
3 import (
4 "fmt"
5 )
6
7 var a int = 100 // 正确方式,不如编译会出错
8
9 // a :=100 这种简写仅能存在函数内,全局变量只能定义不能赋值
10
11 /** a:= 100 ,实际上是两条语句组成,如下:
12 var a int
13 a = 100 <--这个位置有赋值操作,所以定义在全局变量下会如下报错:
14 "syntax error: non-declaration statement outside function body"
15 **/
16
17 func main() {
18 b := 100 // 函数体内可以这么玩
19
20 fmt.Println(a)
21 fmt.Println(b)
22
23 }
相关文章
- Go语言内置函数大全
- 【Go语言】【6】GO语言的数组
- 【Go语言】【2】Sublime配置GO开发环境
- Go语言图形界面开发:Go版GTK
- 使用athens部署企业内部Gitlab go mod包的Go私服代理
- ABAP和Go语言的初始化操作, Kubernetes的Init Container
- Go语言的几个注意点
- Atitit golang开发环境搭建 目录 1. 编辑helo.go1 1.1. 调试编译1 2. Ide选择liteide2 3. 问题解决2 4. 附录2 4.1. Go语言标准库常
- 成功解决Cannot find declaration to go to
- 我的Go+语言初体验——ubuntu安装Go+环境问题锦集(二)
- 【Go基础】理解go语言变量
- 【Go基础】理解go语言类型
- Go 语言和 Scala 语言对比
- Go语言自学系列 | go常用命令
- 387集Go语言核心编程培训视频教材整理 | 数据结构(四)
- go语言笔记——切片底层本质是共享数组内存!!!绝对不要用指针指向 slice切片本身已经是一个引用类型就是指针
- 漫画Go语言中如何将数组切片复制/拷贝
- Go语言中的defer语句
- Go:go语言的认识理解、安装应用、语法使用之详细攻略
- go语言制作简单图书管理系统
- Go 函数和方法:Go 语言中的函数和方法到底有什么不同?