前情提要

最近刚好赶上项目维护期间,又没有新项目,有些闲暇时间,学习一下go语言。了解了解这个热门语言,嘿嘿,这篇文章别被领导看见,要不可研究不了噜。 PS:本示例是演示的是官网示例,但代码有一部分不同,是以JavaScript的编码风格来嘟

Go的安装

首先点击访问此链接,下载对应你系统的Go程序,如图楼主下载的就是window版 下载并安装完成后,在命令行执行 go version 命令查看是否安装成功,如下图所示

go version

go version go1.21.6 windows/amd64 # 出现代码安装成功

go模块的初始化

在你的学习文件夹,创建一个主目录go-hello并进入,接着创建模块的文件夹,并执行 go mod init example.com/hello 初始化模块

mkdir go-hello #创建主目录

cd go-hello #主进入目录

mkdir hello #创建模块对应文件夹

cd hello #进入模块文件夹

go mod init example.com/hello #初始化模块

模块初始化成功后,可以在命令行看到如下内容,且文件夹会多出一个 go.mod 文件

go: creating new go.mod: module example.com/hello

输出一个hello world

我们在hello文件夹下,创建一个hello.go文件,并输入如下代码

type nul> hello.go

package main // 主模块

import "fmt" // 引入一个格式化数据库

func main(){

var message string = "hello world"

// message := "hello world"

fmt.Println(message)

}

解释说明:

package main 表示声明当前为main模块,这个main模块就等同于我们的js里的启动文件,比如vue-cli里的main.js那个感觉import "fmt 表示引入一个格式化数据的库,想必写js的小伙伴很熟悉,其实这段话就和我们引入库是一样的,都是用import关键字后面表示库名。且go和我们js也一样,引入的库都需要进行安装,只不过这里这个库不需要,它是go的内置库。func main(){} 表示声明一个名称为main的函数,和我们js语法基本一致,只不过go不需要写全function,只写一部分func即可。在段代码中函数名main非常特殊,是属于一个非调用也会执行的函数,在命令行运行时,其代码一定会执行,。var message string = “hello world” 即为声明变量,和我们js语法差不多,但是在变量名后面多了一个类型要声明。如果不想声明类型,也可以像下面备注的语句 message := “hello world” 一样,直接赋值。fmt.Println(message) 即为调用库中的函数,和js不同go中的库都是小写,函数首字母都是大写。

接着我们回到命令行,输入 go run . 指令执行代码,可以看到如下效果

go run .

hello world

输出一个随机hello

首先在hello.go文件中,我们引入一个math/rand库,进行随机数的返回,以下两种形式都可以

……

// 第一种引入法,像js一样

// import "fmt" 引入一个格式化数据库

// import "math/rand" 引入一个随机数库

// 第二种引入法,go推荐的引入法

import (

"fmt" // 引入一个格式化数据库

"math/rand" // 引入一个随机数库

)

……

接着我们创建一个返回随机字符的函数,这里注意和js有不同,go返回值的类型,必须在函数中定义

func randomHello() string {

// 定义一个字符串类型的切片

var messages = []string{

"hello 张三",

"hello 李四",

"hello 王五",

}

return messages[rand.Intn(len(messages))] // 根据随机坐标返回一个值

}

解释说明:

func randomHello() string{……} 表示定义一个函数名为randomHello,返回的类型为字符串的函数var messages = []string{……} 表示声明一个长度为3的切片,为什么是切片而不是数组,是因为数组在go中是长度是固定的,不像js一样可动态添加,所以一般都使用切片rand.Intn(数字x) 该函数会在给定数字的范围中随机返回一个,比如给定2则会在0-2中随机返回一个数len(切片x) 该函数会返回切片的长度messages[…] 根据坐标取切片中的某个值,和JavaScript里数组取值一样,坐标也是从0开始

同时我们将main主函数的代码,调整为如下

func main() {

fmt.Println(randomHello())

}

接着我们回到命令行,输入 go run . 指令执行代码,可以看到如下效果

go run .

hello 张三

go run .

hello 王五

代码的构建

我们在命令行中输入 go build 代码构建

go build

构建完成后,可以在hello文件夹下看到 hello.exe 接着我们回到命令行,输入几次hello命令,可以看到直接输出了随机hello。这是因为go会默认安装在系统的shell目录,所以可以在命令行直接执行

hello

hello 张三

hello

hello 王五

通过输入 go list -f ‘{{.Target}}’ 可以查看安装的路径

go list -f '{{.Target}}'

'C:\Users\Administrator\go\bin\hello.exe'

推荐链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。