第一次实验,简单的MENU-golang版,作者:536

DNSC_york 2022-03-17 17:31:18

Git版本库初始化

初始化git

img

创建lab1分支

img

这样就完成了git版本库的初始化

golang和VSCode的环境配置

我使用的开发环境为WSL,所以这里只说明WSL的golang和VSCode环境配置

golang环境配置

1.从官网下载源码

wget https://studygolang.com/dl/golang/go1.15.2.linux-amd64.tar.gz

2.解压缩到 /usr/local

tar -C /usr/local -xzf go1.15.2.linux-amd64.tar.gz

3.设置环境变量到 /etc/profile

export GOPATH=/home/yorky/go
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

source /etc/profile使之生效
4.测试

创建文件夹

 mkdir $GOPATH/src/github.com/yorky/hello -p

进入文件夹

 cd $GOPATH/src/github.com/yorky/hello

创建文件hello.go

$

touch hello.go

hello.go:

package main

import "fmt"

func main() {
 fmt.Printf("Hello, World!!!")
}

运行:

$ go run hello.go
hello World!!

VSCode的环境配置

1.vscode首先需要安装go语言插件,在vscode扩展中搜索“go”,如下图,下载安装go插件

img

2.vscode环境配置

打开vscode设置,菜单File -> Preferences -> Settings,Extensions=>Go configuration找到GoPath设置项,选择Edit in setting.json

img

设置GoPath(go工作路径)和GoRoot(go安装包路径)路径,如下图

img

3.vscode会自动弹框提示安装其他插件(编写go代码时),如下图,选择InstallAll

img

img

golang版MENU程序

这次实验参考的是老师给的C版本menu程序。

  • 定义结点
type DataNode struct {
    cmd     string
    desc    string
    handler func() int
    next    *DataNode
}
  • 初始化head结点头
var head []DataNode = []DataNode{
    DataNode{"help", "this is help cmd!", nil, nil},
    DataNode{"version", "menu program v1.0", nil, nil},
    DataNode{"quit", "Quit from menu", Quit, nil},
}
  • 将输入的cmd和链表中的cmd比对,找出正确的命令
        for p != nil {

            if strings.Compare(p.cmd, cmd) == 0 {
                fmt.Printf("%s - %s\n", p.cmd, p.desc)
                if p.handler != nil {
                    p.handler()
                }
                break
            }
            p = p.next
        }

至此,本次实验就完成了。

...全文
120 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧