我的Go+语言初体验——初学者的快速入门

huidaoli 社区初级贡献者
Python领域新星创作者
2021-11-26 16:54:42

“我的Go+语言初体验” | 征文活动进行中......https://bbs.csdn.net/topics/603464006?utm_source=1594742339

一、Go+ 是什么

听说Go+发布已经有几天了,之前有接触过Go、python、php、c等语言,所以看到Go+时感觉并不陌生。

那么到底什么是Go+呢?

听说是用于工程、STEM 教育和数据科学的 Go+ 语言。
为了了解更多关于Go+的蛛丝马迹,我特意上了Go+的官方网站去了解了下。

官方网站:https://goplus.org/

打开后全是英文,好吧,还好我英文水平可以。

img

如果有看不懂的同学,可以看下面这个界面图片,也许看的习惯点。

img

看完我大概明白了,正像大家说的,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+ 提供数据科学和工程的相同语言。

不急,我们在官网上再找找,多学习下。

img

我尝试的点了下Try Go+ 这个按钮。

img

看来官方为了让我们更好的体验Go+也是用心了。那我们就来用下吧,就当在线快速体验下。

img

好像反映有点慢,我以为卡了呢,还好运行结果出来了。

img

我们试着修改下代码看看。

img

我们再切换下代码,因为这个体验界面已经有几个代码段可以下拉切换。

img


好吧,代码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+.

在官网上找到两个怎么安装的按钮。

img

第一种方式:

img

第二种方式:

img


img

咱们使用第一种方式在Win10上安装,好像出了点问题。

img


命令:go run cmd/install.go 无法执行。
然后在官网去找下为什么,看看有没有win10安装教程。

img

这怎么办呢,个人猜测,既然是Go+,是不是要Go环境,应该先安装Go,对于第一次接触的同学可能有点晕。

去Go官网:https://golang.google.cn/dl/

img


img


已经安装好了,然后再试下安装go+,好像对方服务器连接有问题。

img

这样的话,看来第一种安装方式行不通啊!
想想是不是要走第二种方式安装。

四、开发工具

第一种方式无法安装成功,小编我决定试试第二种方式,使用Vcode+goplus 的插件方式安装。

img

Go+ 其实是对 Go 进行了一些扩展,其开发环境还是需要依赖 Go 的。
因为我没在 GOPATH 下新建工程,就需要使用 Go Model 来处理依赖,所以我们这里在工程目录下面执行下 Go Model 的初始化命令:

img


注意:go+目录是我手工创建的。
这会可以了,代码运行成功了。

img

五、Demo编写

下面我们来用go+做点什么吧。
官方有不少的教程示例代码。

img

这里我们写点别的代码测试下吧。

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的程序员来说这都不是个事,对新手来说,还是有点门槛,不管是对开发工具的支持,到开发环境的搭建,都要点基础。总体来说体验感还行,相信会不断的完美。

...全文
689 25 打赏 收藏 举报
写回复
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
huidaoli 社区初级贡献者 2021-12-03
  • 打赏
  • 举报
回复 1
嫁给幸福的爱 2021-11-30
  • 打赏
  • 举报
回复 4

我修改代理方式已经可以第一种方式安装成功

m0_64336946 2021-11-30
  • 举报
回复 4
@嫁给幸福的爱 只能修改代理吗?
huidaoli 社区初级贡献者 2021-11-30
  • 举报
回复 2
@m0_64336946 目前是要这样的,不然安装时无法连接服务器
嫁给幸福的爱 2021-11-30
  • 举报
回复
@huidaoli 那还是比较麻烦的。
1条回复
嫁给幸福的爱 2021-11-26
  • 打赏
  • 举报
回复 5
第一种安装方式在其他系统上安装应该好安装。大家一起研究研究🤫
huidaoli 社区初级贡献者 2021-11-30
  • 举报
回复 2
@嫁给幸福的爱 其他系统也需要修改下代理。
嫁给幸福的爱 2021-11-30
  • 举报
回复
@huidaoli 好像vcode安装完也不好用啊。
嫁给幸福的爱 2021-11-26
  • 打赏
  • 举报
回复 5
博主写的比较接地气,真实的体验,特别是针对初次使用的人,比如我。
huidaoli 社区初级贡献者 2021-11-30
  • 举报
回复 2
@嫁给幸福的爱 感谢支持
m0_64336946 2021-11-26
  • 打赏
  • 举报
回复 5
写贴子可能不写了,写不来长长的文章,不过可以跟着大家学习学习👏
嫁给幸福的爱 2021-11-26
  • 举报
回复 5
@m0_64336946 我也是,不会写,但学习学习还好。
m0_64336946 2021-11-26
  • 举报
回复 5
@嫁给幸福的爱 嗯,是的,学习加围观
huidaoli 社区初级贡献者 2021-11-30
  • 举报
回复 1
@m0_64336946 大家一起学习,毕竟GO+是刚出来的插件
2条回复
m0_64336946 2021-11-26
  • 打赏
  • 举报
回复 5
回头我也体验下,新东西还是要多学习下的
嫁给幸福的爱 2021-11-26
  • 举报
回复 5
@m0_64336946 还在折腾学习中
m0_64336946 2021-11-26
  • 举报
回复 5
@嫁给幸福的爱 我直接在线官网体验了下。不知道为什么加r,比如println(1/3r+2/7r*2),为什么不是这样println(1r/3r+2r/7r*2r)
嫁给幸福的爱 2021-11-26
  • 举报
回复 5
@m0_64336946 哈哈,要是这样println(1r/3r+2r/7r*2r),那把r抵消后,不就是这样了println(1/3+2/7*2r),这样等式还成立。,就当笑话乐乐哈。新的技术和知识开始都是这样的。
4条回复
发帖
Go+ 开发者社区

906

社区成员

Go+ 官方开发者社区。我们希望向广大的开发者和数据科学家介绍 Go+ 的定位和意义,并邀请更多开发者一起贡献代码、共建 Go+ 生态。 Go+ 官网:https://goplus.org/
其他 企业社区
社区管理员
  • Go+
  • 杨东杰
加入社区
帖子事件
创建了帖子
2021-11-26 16:54
社区公告

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

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