1,016
社区成员
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插件即可,它目前提供如下功能:
未来还会支持更多功能,插件教程地址:https://github.com/gopcode/vscode-goplus
相信不少小伙伴跟我一样,在大一学期的时候老师都会布置一个学生管理系统的作业或考试。
有的是通过C语言写的,有的是通过python写的。下面我就结合GO+来实现一个简单版的学生管理系统.
1)主界面
主界面展示了该系统有哪些功能,通过输入对应的序号来进行选择执行对应的功能
2)增加学生
增加学生的功能
3)修改学生
修改学生的功能,可以修改部分信息,也可以修改所有信息
4)刪除学生
删除学生的功能
5)查询学生
查询学生的功能
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+大家庭中来。
欢迎评论点赞、欢迎大佬提建议。如果有什么问题也欢迎大家留言,一起交流学习。