Go 学习 (一) 第一个go程序

1.应用场景

学习go, 储备go知识, 后续进行开发.

同时结合解释性语言, 如PHP, 了解编译型语言的不同之处,

去理解各编程语言的异同, 及其本质, 提高技术领悟,使用, 甚至是改造能力.

2.学习/操作

环境交代:

Windows 10  64位

这里有三台电脑, 即三个环境[公司一台, 家里两台]  环境可能会有些许不同, 但是流程/原理都是相同的. 

1.安装

扫描二维码关注公众号,回复: 10944563 查看本文章

方式一

使用msi安装包  //需要能正常访问google

https://dl.google.com/go/go1.14.2.windows-amd64.msi

默认安装在c:\go

  

下面是之前安装的go.1.12版本

配置环境变量

GOROOT 是安装路径,  GOPATH是项目路径[后面再说]

备注: 系统环境变量 Path默认为自动添加上c:\go\bin   即go的二进制可执行文件的目录

方式二:

Zip压缩包  //解压即是安装, 但是一些环境变量之类需要自己手动添加, 不单单是go, 其他语言/软件也是一样, 如php等

下载此zip文件 并提取到你的自选目录(建议是c:\Go):

https://dl.google.com/go/go1.14.2.windows-amd64.zip  //下载链接

若你选择了 c:\Go 之外的目录,你必须为你所选的路径设置 GOROOT 环境变量。

将你的Go根目录中的 bin 子目录(例如 c:\Go\bin)添加到你的 PATH 环境变量中。

请确保Path变量生效

测试是否安装成功

一切正常.

如果安装不成功, 多试几次.

http://docscn.studygolang.com/doc/install //安装文档

2.编码工具

推荐使用IDE,  文本编辑器备用.

GoLand  //从phpstorm 可以初步判断应该挺好用, 但是收费, 可以先试用一个月 [对于新手,推荐使用 GoLand]

Visual Studio Code  //这里使用vscode

备注:

以上两个IDE工具, 这里或交叉使用. 只是工具而已, 原则就是那个使用舒服, 用那个.

使用 VS Code 的话需要安装Go 扩展. 见下方

4. 命令行工具 //交叉使用

windows 自带cmd

git bash

3.第一个go程序

3.1 创建工作目录/配置工作目录变量

上面准备就绪, 就可以直接开始编写第一个 Go 语言程序了,

还是遵循编程语言的一贯传统,我们从 Hello World 开始 Go 语言学习之旅.

首先,我们进入用户根目录,并在该目录下创建一个 go 目录,用来存放所有的 Go 语言代码:

首先,我们进入用户根目录,并在该目录下创建一个 go 目录,用来存放所有的 Go 语言代码

使用git bash  //推荐使用, 也可以使用cmd, 有时候会有问题, 只要知道能解决问题即可,

cd ~
mkdir go

之所以在这里位置创建这个目录来存放代码,是因为 Go 语言默认的 GOPATH 环境变量值就是该路径

不管是 Linux、Mac 还是 Windows 都是如此,比如 Windows 系统下可以通过系统环境变量界面看到该配置://没有, 就自行配置

GOPATH 的用处是 Go 语言在编译程序时,会从 GOPATH 配置的路径里面去查找源文件并完成构建。

3.2 工作目录下, 新建项目目录

即这里在 go 目录下新增一个项目,取名为 test,进入该项目目录,

创建一个 Go 文件 hello.go

cd ~/go
mkdir test
cd test
touch hello.go

3.3 书写 hello.go 文件代码

和 PHP 源码存放在 .php 文件类似,Go 语言源码都是存放在 .go 文件中. //这里先使用文本编辑器打开[sublime或者Windows自带的文本编辑器]

如下:

package main

import "fmt"

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

至此, 一个简单的打印 Hello World 的 Go 代码就写好了,下面我们简单分析下每一行代码的含义。

3.4 代码解读

和 Java 类似,Go 使用包[即package]作为基本单位来管理代码(可以类比为 PHP 中的命名空间),

每个 Go 源代码文件的开头都是一个 package 声明,表示该文件中 Go 代码所属的包。

包是 Go 语言里最基本的分发单位,也是工程管理中依赖关系的体现。

要生成 Go 可执行程序,必须建立一个名字为 main 的包,并且在该包中包含一个叫 main() 的主函数,该函数是 Go 可执行程序的执行起点,这一点和 C 语言和 Java 语言很像,后续编译 Go 项目程序的时候也要从包含 main 包的文件开始。

Go 语言的 main() 函数不能带参数,也不能定义返回值。

在包声明之后,是一系列的 import 语句,用于导入该程序所依赖的包(可类比为 PHP 中通过 use 引入其它命名空间的类来理解)。

由于本示例程序用到了Println() 函数,所以需要导入该函数所属的 fmt 包。

有一点需要注意,与 Java 和 PHP 不同,在 Go 语言中,不得包含在源代码文件中没有用到的包,否则 Go 编译器会报编译错误.

这与下面的强制函数左花括号 { 的放置位置以及之后会提到的函数名的大小写规则,均体现了 Go 语言在语言层面解决软件工程问题的设计哲学。

所有 Go 函数(包括在面向对象编程中会提到的类型成员函数)都以关键字 func 开头(这一点与 PHP、Java、JavaScript 等语言通过 function 定义函数不同)。另外在 Go 函数中,左花括号 { 必须函数定义行的末尾,不能另起一行,否则 Go 编译器报告编译错误:

syntax error: unexpected semicolon or newline before {

 

另外,与 Python、JavaScript 类似,Go 程序并不要求在每个语句后面加上分号表示语句结束,这也是与 PHP、Java 等语言的不同之处。

最后,函数体很简单,就是调用 fmt 包提供的 Println 函数打印「hello,world」这行字符串,Go 语言可以直接通过包名+「.」号引用定义在该包中的函数。

3.5 编译 & 运行程序

对以上代码含义有了大致的了解后,我们接下来要编译并运行第一个 Go 程序,和 PHP 不同,Go 语言是编译型的静态语言(和 Java、C 一样),在运行 Go 程序之前,先要将其编译成二进制可执行文件,我们可以通过 Go 语言提供的 go build 命令对 Go 程序进行编译,然后运行编译后的可执行文件执行 Go 程序代码:

备注:

上面在cmd如果使用./hello.exe [在git bash可以], 不能执行, 就去掉./

可以看到,代码执行成功,打印出了「hello,world」

此外,我们还可以通过 go run 命令来达到同样的效果,该命令将编译和执行指令合二为一,会在编译之后立即执行相应的可执行文件显示执行结果://即并没有生成hello.exe文件 [可以做测试]

第一个 Go 程序执行结束.

详情参见:

https://xueyuanjun.com/post/19709


 

后续补充

...

3.问题/补充

TBD

4.参考

http://docscn.studygolang.com/doc/install //安装文档

https://blog.csdn.net/william_n/article/details/102893655  //Go

后续补充

...

发布了456 篇原创文章 · 获赞 44 · 访问量 35万+

猜你喜欢

转载自blog.csdn.net/william_n/article/details/105586305