# 安装和配置

# go语言本体

进入go语言官网 快的离谱
随后选择对应的版本,双击msi文件安装

# goland安装

一般来说大部分语言都需要一个IDE,这里用goland做例子

goland是付费软件,但网上破解教程一大堆,所以这里就不给破解教程了

这里 下载
安装及配置教程同pycharm,故不在赘述

# 常见错误

# $gopath/go.mod exists but should not

因为goland自动启用了go模块集成,但模块集成与gopath不兼容,所以出现此错误
解决方案: 在命令行中执行以下命令

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

然后删除gopath配置,重启电脑,问题随之解决。

可以通过更改gopath或禁用go.mod的方式解决,但推荐使用module的方法

# no Go files in goroot/src/go

出现于既没有设置module,也没有设置gopath并且代码在非src目录下的情况
可以使用上面的解决方法设置go module来解决,这里不推荐使用gopath的方法

# go语言的hello world

package main

import "fmt"

func main() {
	/*这是一行注释*/
	fmt.Println("hello world")
}

package main定义了包名,每个go文件的第一行都应该是packagepackage main表示这是一个独立的可执行程序,
每个go项目都包含一个main包名的包
import "fmt"导入一个指定的库并告诉编译器需要使用这个库,类似于#include
fmt库包含了go语言的I/O函数
func main()为程序的主函数(就是最开始执行的函数),一般是第一个执行的函数

init()函数的优先级高于func main()

/* xxx */是注释,同C++的写法,//是单行注释,/* */是多行注释,不可嵌套使用
fmt.Println是输出一个字符串到控制台,使用fmt.Print("str\n")可以实现同样的效果

当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,
那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),
这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,
但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 private)。

更新于