我的Go+语言初体验——GO+版的学生管理系统

曲鸟
全栈领域优质创作者
2021-12-08 14:37:23

我的Go+语言初体验” | 征文活动进行中...

一、什么是GO+语言

Go+ 是七牛云 CEO 许式伟发明的一门可用于工程、STEM 教育和数据科学的编程语言,于 2020 年 7 月正式发布,2021 年 10 月推出 1.0 版本。

它有什么优点呢?简单来说就是既有GO的性能又有Python那样简洁的语法,未来还会兼容python,具体可以在官方社区文章中进行了解学习:https://bbs.csdn.net/topics/603424035


二、安装教程

GO+社区里面有很多安装教程的文章,这里就不再重复讲解了(GO+社区访问地址:https://bbs.csdn.net/forums/goplus?category=0

想先简单尝试的话,也可直接通过在线地址:https://play.goplus.org/ 进行体验。

但需要注意的是,要执行的代码过多的话,会报错,所以想完整体验的话还是得配置本地GO+环境:

 

 


另外,GO+支持Vscode,只需要在Vscode中的应用中搜索安装goplus插件即可,它目前提供如下功能:

  1. 语法高亮
  2. 自动片段
  3. 格式源代码
  4. 自动完成
  5. 悬停功能显示
  6. 自动导入
  7. 显示符号的定义

 

未来还会支持更多功能,插件教程地址:https://github.com/gopcode/vscode-goplus


三、GO+版的学生管理系统

相信不少小伙伴跟我一样,在大一学期的时候老师都会布置一个学生管理系统的作业或考试。

有的是通过C语言写的,有的是通过python写的。下面我就结合GO+来实现一个简单版的学生管理系统.


1. 演示效果

1)主界面

在这里插入图片描述

主界面展示了该系统有哪些功能,通过输入对应的序号来进行选择执行对应的功能


2)增加学生

在这里插入图片描述

增加学生的功能


3)修改学生

在这里插入图片描述

修改学生的功能,可以修改部分信息,也可以修改所有信息


4)刪除学生

在这里插入图片描述

删除学生的功能


5)查询学生

在这里插入图片描述

查询学生的功能


2. 源码分享

import (
    "fmt"
    "os"
)

// 储存学生数据
var Mgr studentMannger

//定义个储存学生信息的结构体
type studentMannger struct {
    stu map[uint]*student
}

//定义一个学生信息的结构体
type student struct {
    id    uint
    name  string
    age   uint
    gender string
}


//查询所有学生信息
func (s studentMannger) showAllStudents() {
    println("----所有学生的信息如下----\n\n")
    println("  ID", "姓名", "年龄", "性别")
    for i, v := range s.stu {
        println(i, v.name, v.age, v.gender)
    }
        println("--------------------------")
}
//增加学生信息
func (s studentMannger) addStudent() {
    println("请输入新学生id:")
    var (
        stuID    uint
        stuName  string
        stuAge   uint
        stuGender string
    )
    fmt.Scanln(&stuID)
    _, ok := s.stu[stuID]
    if ok {
        println("此学号存在!")
        return
    }
    println("请输入新学生名称:")
    fmt.Scanln(&stuName)
    println("请输入新学生年龄:")
    fmt.Scanln(&stuAge)
    println("请输入学生的性别:")
    fmt.Scanln(&stuGender)
    s.stu[stuID]=&student{stuID,stuName,stuAge,stuGender}
}
//修改学生信息
func (s studentMannger) updateStudent() {
    println("请输入要修改学生的id:")
    var (
        stuID    uint
        stuName  string
        stuAge   uint
        stuGender string
        num      int
    )
    fmt.Scanln(&stuID)
    _, ok := s.stu[stuID]
    if !ok {
        println("查无此人!")
        return
    }
    println("请输入要修改学生哪项信息:\n1.姓名;2.年龄,3.性别,4.所有信息\n请输入序号:")
    fmt.Scanln(&num)
    switch num {
    case 1:
        println("请输入要修改学生的姓名:")
        fmt.Scanln(&stuName)
        s.stu[stuID].name = stuName
    case 2:
        println("请输入要修改学生的年龄:")
        fmt.Scanln(&stuAge)
        s.stu[stuID].age = stuAge
    case 3:
        println("请输入要修改学生的性别:")
        fmt.Scanln(&stuGender)
        s.stu[stuID].gender = stuGender
    case 4:
        println("请输入要修改学生的姓名:")
        fmt.Scanln(&stuName)
        println("请输入要修改学生的年龄:")
        fmt.Scanln(&stuAge)
        println("请输入要修改学生的性别:")
        fmt.Scanln(&stuGender)
        s.stu[stuID] = &student{
            name:  stuName,
            age:   stuAge,
            gender: stuGender,
        }
    }
    println("----修改成功----")
}
//删除学生信息
func (s studentMannger) delStudent() {
    println("请输入要删除学生的id:")
    var stuID uint
    fmt.Scanln(&stuID)
    delete(s.stu, stuID)
    println("----删除成功----")
}


Mgr = studentMannger{
    stu: make(map[uint]*student, 100),
}
println("-------------欢迎使用学生管理系统-------------")
for {
    println(`
        1.查看所有学生信息
        2.增加学生信息
        3.修改学生信息
        4.删除学生信息
        5.退出程序
------------------------------------------
    `)
    println("请输入上面对应的序号来选择对应的操作:")
    var stuID uint
    fmt.Scanln(&stuID)
    switch stuID {
    case 1:
        Mgr.showAllStudents()
    case 2:
        Mgr.addStudent()
    case 3:
        Mgr.updateStudent()
    case 4:
        Mgr.delStudent()
    case 5:
        os.Exit(1)
    default:
        println("输入错误,请重新输入!")
    }
}

上面的代码主要是使用GO+省略了main函数和修改了print的写法。

实现的学生信息管理系统很简单,只有基本的增删改成功能,大佬们可以自己拿下拉进行修改。


四、总结

golang砍掉了不少我们之前所熟悉的其他语言的那些东西,比如:class、静态变量、继承等。现在云原生、docker已经由go接管了,越来越多的公司、大厂也再使用go,这是一门很有前景的语言。现在,GO+的出现让我们能更快速、简洁的开发代码。所以学起来是没毛病的。

现在官方文档的教程还比较少,很多都还在等待更新中:

在这里插入图片描述


通过这次使用GO+的体验来讲,我还是很期待很原因在未来官方教学文档完善后,继续使用及学习GO+在我的日常工作生活中。

也相信在未来会有越来越多的developer加入到GO+大家庭中来。

欢迎评论点赞、欢迎大佬提建议。如果有什么问题也欢迎大家留言,一起交流学习。

我的Go+语言初体验” | 征文活动进行中...

...全文
984 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
非洲难民zxc 2021-12-11
  • 打赏
  • 举报
回复

点赞

ζ小菜鸡 社区贡献者 2021-12-10
  • 打赏
  • 举报
回复
大佬Go 和 Go+有什么不同
曲鸟 2021-12-10
  • 举报
回复
@ζ小菜鸡 可以看看社区官方文章《带你一文了解GO+》
ζ小菜鸡 社区贡献者 2021-12-10
  • 举报
回复
@曲鸟 社区的全部内容我全看了一遍,但是现在还是不知所以然
海拥✘ 社区初级贡献者 2021-12-08
  • 打赏
  • 举报
回复

曲鸟兄yyds

曲鸟 2021-12-08
  • 举报
回复
@海拥✘ 谢谢海拥兄弟
在 Web 开发的世界里,敏捷才是王道。使用更少的费用和资源来更快地完成网站和网络应用,从而获得更多的竞争优势。此外,他们不仅希望快速完成 Web 开发,对可用性和用户体验的要求也很高。这需要开发更多的功能和高级编程语言来开发网站功能,例如 Golang。如果您正在寻找用于 Web 编程、移动开发、微服务和 ERP 系统的强大工具,我们相信,您应该切换到 Golang 的原因是:1. 简单性如果 Python 是迄今为止容易学习的编程语言,那么 Golang 甚至更简单。学习 Go 语言要比学习 Python 快得多。一些开发人员声称 Golang 几乎和 JavaScript 一样简单。 2. 高级编译能力Golang 是一个编译执行语言,它能够直接将代码编译成可执行的二进制机器码。Golang 静态地将所有依赖库和模块编译到到一个二进制文件中。你不再需要在服务器上安装任何依赖项——你所需要做的就是上传一个编译的文件,你的应用就可以简单的运行了。 3. 并发和性能Golang 并发模型能够确保更高的性能(性能甚至 2x、3x 的提升)。大多数现代编程语言都支持并发,但是 Golang 采用了更节省资源的方法。Golang 提供更高性能的goroutine模型来支持多线程,goroutine能够更加节省 CPU 和内存资源。所以 Golang 更有助于降低成本和资源 4. 框架和库的本地支持Golang sdk 提供了功能丰富的 api,因此不用过多的依赖第三方库就能很好的使用 Golang。当然,如果你需要的话,你可以下载很多工具和框架(Golang 周围的社区已经很强大很完善了),但是常用的 API 都已经内置到 Golang 核心库中了。这样可以加快整个 Golang Web 开发过程的速度,并且使您无需寻找任何第三方依赖。 5.  IDE 和调试Golang 创作者在创建具有先进调试工具和插件的先进的集成开发环境方面做得很好。这可以说是编程中最关键的方面,因为 IDE 会严重阻碍或加速开发过程。今天,当敏捷性给软件公司带来竞争优势时,伟大的 IDE 和调试工具是一个非常重要的优势。 6. 清晰的语法、它包含零不必要的组件。Go是建立在实用的头脑中的:而不是必须深入研究语言结构,开发者现在可以自由地专注于开发本身。本质上Golang 是非常务实的。 本课程基于电商业务,采用前后端分离方式进行构建和讲解,后端主要包括:Gin+Go-Micro以及前端主要包括Vue。由于内容比较多,课程会分模块讲解,包括用户服务模块、商品服务模块、订单服务模块、消息服务模块、支付服务模块、后台管理系统模块、营销中心模块、物流系统模块、搜索中心模块、智能推荐模块等等。本课程内容为用户服务模块,全套课程将多种经过工业界验证的成熟技术解决方案呈现给大家,本套课程拒绝枯燥的理论,全程代码实操,通过项目驱动的方式,让大家能够真实体验Go语言在工业界开发过程,帮助大家建立Go语言开发思维,学习本套课程全部内容你完全可以自主开发一套高性能高可用高扩展的Go电商系统。本套案例集后端+前台+测试+运维一体,多方位的带你熟悉Go语言开发的全过程。本课程包含的技术:开发工具为:GOLAND、WebStormGin+Go-Micro Vue+Nodejs+jQuery+ElmentUIRedisRabbitMQ等等

1,005

社区成员

发帖
与我相关
我的任务
社区描述
Go+ 官方开发者社区。我们希望向广大的开发者和数据科学家介绍 Go+ 的定位和意义,并邀请更多开发者一起贡献代码、共建 Go+ 生态。 Go+ 官网:https://goplus.org/
其他 企业社区
社区管理员
  • Go+
  • 杨东杰
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

本社区为 Go+ 官方开发者社区。我们希望向广大的开发者和数据科学家介绍 Go+ 的定位和意义,并邀请更多开发者一起贡献代码、共建 Go+ 生态。

Go+ 官网:https://goplus.org/
GitHub地址:https://github.com/goplus/gop

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