服务计算--安装golang作业1

这次的作业是go语言开发环境的安装及应用




安装步骤

一、安装VS code编辑器

我更倾向于在CentOs中使用vim,在Windows中使用VS code,所以我跳过了这个步骤。如果需要了解如何在CentOs中安装VS code,请关注我后续的博客

二、安装golang

三步走:安装,检查安装位置,测试
1、安装:sudo yum install golang。下图是已经安装过的
在这里插入图片描述

2、检查安装位置:rpm -ql golang |more
在这里插入图片描述

3、测试:go version
在这里插入图片描述

三、配置环境变量

1、创建工作空间:mkdir $HOME/gowork
2、配置环境变量:

vim ~/.profile或者vim $HOME/.profile
然后添加两行:
在这里插入图片描述

然后执行:source $HOME/.profile
3、检查配置:go env
在这里插入图片描述


go 语言编程

一、hello world

先重启一下,然后就可以创建源代码目录
mkdir $GOPATH/src/github.com/Luisao7120/hello -p
-p 的作用是创建每一级目录,很方便。创建完成后,进入这个目录
cd $GOPATH/src/github.com/Luisao7120/hello
创建源代码文件
vim hello.go
在这里插入图片描述

保存退出,在终端运行

go run hello.go

在这里插入图片描述

二、利用 git 将代码上传到 github

这次作业要求我们,仔细阅读官方文档,并按文档写第一个包,做第一次测试,且请其写在 git 仓库 Readme.md 中。这里就需要一个github仓库便于TA查看作业了。所以我整理了一个将代码上传到github的小教程
1、安装git客户端

sudo yum install git

2、创建git仓库
首先进入目录

cd $GOPATH/src/github.com/本地仓库名/

然后初始化

git init

这时候输入ls -a(-a是显示隐藏文件/文件夹),就会发现一个隐藏文件夹.git,这个是用来记录库历史的
3、添加git文件

git add .

这时候会报错,后面解释
4、添加修改注释(必需)

git commit -m "这里是你注释的内容"

这时候会报错,后面解释
5、连接本地仓库和github上的远程仓库

git remote add origin https://github.com/用户名/github仓库名

6、push本地仓库的内容(需要输入github账号和密码)

git push -u origin master

这时候你会发现报错:src refspec master does not match any,原因是本地仓库还是空的,我们在创建完本地仓库后,并没有添加任何东西。之前提过,第3、4步是失败的,原因也是本地仓库为空,第3、4步失败自然也就无法push。所以请在本地仓库中添加文件,再重复3、4、6步的内容。全部完成后你就可以打开github查看本地上传的文件了

三、第一个包

“第一个包”是用hello.go调用reverse.go,代码如下:

//1、reverse.go
// stringutil 包含有用于处理字符串的工具函数。
package stringutil

// Reverse 将其实参字符串以符文为单位左右反转。
func Reverse(s string) string {
	r := []rune(s)
	for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
		r[i], r[j] = r[j], r[i]
	}
	return string(r)
}
//用 go build 命令来测试该包的编译:
$ go build
2、hello.go
package main

import (
	"fmt"

	"github.com/Luisao7120/stringutil"
)

func main() {
	fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}
//用 go install 命令来安装:
$ go install github.com/Luisao7120/hello
//运行
$ hello

在这里插入图片描述

四、第一次测试
package stringutil

import "testing"

func TestReverse(t *testing.T) {
	cases := []struct {
		in, want string
	}{
		{"Hello, world", "dlrow ,olleH"},
		{"Hello, 世界", "界世 ,olleH"},
		{"", ""},
	}
	for _, c := range cases {
		got := Reverse(c.in)
		if got != c.want {
			t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
		}
	}
}

运行指令:

$ go test

输出是:

ok   github.com/Luisao7120/stringutil 0.165s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huyaxiaomuge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值