从JavaScript入门Go一

前情提要

最近刚好赶上项目维护期间,又没有新项目,有些闲暇时间,学习一下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'
  • 17
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值