【GoLang】1.1 第一个go程序

  我为什么要学习go语言啊?大概是因为它现在很火吧,而且我自信学习能力强,学新东西快,所以我就开学啦。首先在下载页下载https://golang.google.cn/dl/,然后安装。再安装开发工具,因为我有正版JetBrains全家桶,所以我可以用GoLand了,在GoLand主页https://www.jetbrains.com/go/下载就可以了。
  来个标准的版本测试,哈哈表示安装成功了:

PS C:\Users\lenovo> go version
go version go1.18.4 windows/amd64
PS C:\Users\lenovo>

  然后就是安装Goland,设置GOPATH了。这个变量按照规范,应该是用户目录下的go文件夹,我是自己手动建的,我的用户名是Lenovo,所以我在C:\Users\lenovo\下建了go文件夹,再把GOPATH设置为C:\Users\lenovo\go,如图:
【GoLang】1.1 第一个go程序_第1张图片

第一个程序

  虽然搭建好了开发工具,但是第一个程序我就不用开发工具了,直接记事本写起来,文件都是main.go嘛,反正也很短:

package main

import "fmt"

func main() {
	fmt.Println("Hello, world!")
}

  然后就是命令行了:

PS F:\learn\go\demo2> go run main.go
Hello, world!
PS F:\learn\go\demo2>

分析

  但是我写完以后没搞懂很多东西。首先是package,这个package必须得叫main,否则就无法执行,为此我做了一个实验,哈哈:

package x

import "fmt"

func main() {
	fmt.Println("Hello, world!")
}

  这么一执行,就果断报错了:

PS F:\learn\go\demo2> go run x.go
package command-line-arguments is not a main package
PS F:\learn\go\demo2>

  GoLang的包是可以不和文件夹同名的,这点让我很惊讶,不过适应了就好了。而还有一点让我不适应的是函数名是大写字母开头,这与我之前学习的用得最多的Java语言很不同。
  文件名是没有什么关系的,可以不叫main.go,我复制了,改成start.go也可以运行:

PS F:\learn\go\demo2> go run start.go
Hello, world!
PS F:\learn\go\demo2>

可执行文件

  GoLang是可以生成可执行文件的,我好久没编译过exe文件了,这次特别激动,迫不及待地试一试。

PS F:\learn\go\demo2> go build .\main.go
PS F:\learn\go\demo2> ls


    Directory: F:\learn\go\demo2


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        25/07/2022     16:43        1892352 main.exe
-a----        25/07/2022     15:10             74 main.go
-a----        25/07/2022     15:10             74 start.go


PS F:\learn\go\demo2> .\main.exe
Hello, world!

命令行参数

  Go的main函数是没有参数的,那么怎么获取命令行输入的参数啊?我对这个很有兴趣。于是练习了起来,原来是要引入os包才能获取命令行参数。代码撸起来:

package main

import (
	"fmt"
	"os"
)

func main() {
	for i := 1; i < len(os.Args); i++ {
		fmt.Print(os.Args[i], ",")
	}
	fmt.Println()
	fmt.Println("Hello, world!")
}

  试验了一下:

PS F:\learn\go\demo2> go build start.go
PS F:\learn\go\demo2> .\start.exe 1 2 3
1,2,3,
Hello, world!

你可能感兴趣的:(#,GoLang,golang,开发语言,后端)