一、Go+ 是什么
听说Go+发布已经有几天了,之前有接触过Go、python、php、c等语言,所以看到Go+时感觉并不陌生。
那么到底什么是Go+呢?
听说是用于工程、STEM 教育和数据科学的 Go+ 语言。
为了了解更多关于Go+的蛛丝马迹,我特意上了Go+的官方网站去了解了下。
官方网站:https://goplus.org/
打开后全是英文,好吧,还好我英文水平可以。
如果有看不懂的同学,可以看下面这个界面图片,也许看的习惯点。
看完我大概明白了,正像大家说的,Go+是一门口用于工程、STEM 教育和数据科学的 Go+ 语言;
就从工程方面来说有以下特征:
1.将支持所有 Go 功能(包括部分支持cgo)。
2.Go+ 提供了更简单优雅的语法,比 Go 更接近自然语言。
3.Go+ 易于学习。您不必在一开始就处理工程的复杂性。
4.Go+ 赋能每一行代码。你可以用更少的代码做更多的工作。
从STEM 教育与 Scratch 相比:
1.Scratch 仅用于编程教学。它基于块状界面,自然直观,但与实际工程体验不一致。
2.借鉴Code Monkey的经验,Go+ 直接使用代码进行编程教学,引入了低学习难度(不高于基于块的编程)和平滑的学习曲线。
3.Go+创新地实现了工程与教学的融合。你学习的语言也是你工作的语言。通过创建更有成效的课程,学生将获得更大的学习成就感。
从数据科学并与 Python 相比:
1.Go+ 提供了更强大的数学表达式功能,例如有理数表达式,可简化数据科学目的的编程。
2.Go+ 支持字节码后端和 Go 代码生成。
3.与 Python 相比,Go+ 提供更好的性能。
4.与 Python 相比,Go+ 提供更像自然语言的语法。
5.与 Python 相比,Go+ 提供与 Python 生态系统的兼容性(未来)。
6.与 Python 相比,Go+ 提供数据科学和工程的相同语言。
不急,我们在官网上再找找,多学习下。
我尝试的点了下Try Go+ 这个按钮。
看来官方为了让我们更好的体验Go+也是用心了。那我们就来用下吧,就当在线快速体验下。
好像反映有点慢,我以为卡了呢,还好运行结果出来了。
我们试着修改下代码看看。
我们再切换下代码,因为这个体验界面已经有几个代码段可以下拉切换。
好吧,代码println(1/3r+2/7r*2)
中的r看着有点奇怪。
现在大概明白了点:
Go+其实也是一种静态类型语言。
而且完全兼容Go 语言。
在风格上类似脚本的风格,以及比 Go 更易读的数据科学代码。
二、Go+功能特征
官方从很多个方面介绍了Go+的功能特征,当然我相信肯定不止这些特征。
1.有理数:bigint、bigrat、bigfloat
2.地图文字
3.切片字面量
4.推导结构类型
5.列表理解
6.从集合中选择数据
7.检查集合中是否存在数据
8.For循环
9.对于 UDT 范围
10.对于 UDT2 范围
11.Lambda 表达式
12.重载运算符
13.错误处理
14.汽车财产
15.Unix 系统
不过不用急,稍后我们对上面的部分功能特征进行学习下。
三、环境安装
下面我们来看看怎么安装Go+.
在官网上找到两个怎么安装的按钮。
第一种方式:
第二种方式:
咱们使用第一种方式在Win10上安装,好像出了点问题。
命令:go run cmd/install.go 无法执行。
然后在官网去找下为什么,看看有没有win10安装教程,再观察下已经下拉的文件都有什么。
这怎么办呢,个人猜测,既然是Go+,是不是要Go环境,应该先安装Go,对于第一次接触的同学可能有点晕。
去Go官网:https://golang.google.cn/dl/
已经安装好了,然后再试下安装go+,好像对方服务器连接有问题。
这样的话,看来第一种安装方式行不通啊!
想想是不是要走第二种方式安装。
四、开发工具
第一种方式无法安装成功,小编我决定试试第二种方式,使用Vcode+goplus 的插件方式安装。
Go+ 其实是对 Go 进行了一些扩展,其开发环境还是需要依赖 Go 的。
因为我没在 GOPATH 下新建工程,就需要使用 Go Model 来处理依赖,所以我们这里在工程目录下面执行下 Go Model 的初始化命令:
注意:go+目录是我手工创建的。
这会可以了,代码运行成功了。
五、Demo编写
下面我们来用go+做点什么吧。
官方有不少的教程示例代码。
这里我们写点别的代码测试下吧。
goplus.import.add
package main
func main(){
println("hello wold")
}
sum := 0
for x <- [1, 3, 5, 7, 11, 13, 17], x > 3 {
sum += x
}
println sum
输出:53
六、总结
从对go+的了解,到熟悉,这其中也遇到不少的一些问题,当然,如果是一名多年开发Go的程序员来说这都不是个事,对新手来说,还是有点门槛,不管是对开发工具的支持,到开发环境的搭建,都要点基础。总体来说体验感还行,相信会不断的完美。
有喜欢的朋友可到活动版块帮忙来个一键三连