文章目录
写在前面
1. 安装
1.1 linux
1.2 windows安装
1.2.1 vscode 安装
1.2.2 goland 安装
2. Go与Go+的对比
2.1 输出
Go
Go+
2.2 字符串
Go
Go+
2.3 循环
Go
Go+
总结
写在前面
大家好啊!我是FanOne,一名Go语言爱好者,在CSDN也写了一些关于Go语言的专栏文章。
最近七牛云带着他们家的Go+来CSDN社区征稿推广啦~ 我也很喜欢七牛云啊,经常用他们家的对象存储!
话不多说,让我们一起来揭开Go+神秘的面纱吧!
1. 安装
1.1 linux
如果网络好的同学,可以直接git clone https://github.com/goplus/gop.git,网络差的同学可以直接下载zip包。
进入这个包
执行./all.bash
安装成功啦~
1.2 windows安装
1.2.1 vscode 安装
windows下的好像只有vscode有go-plus插件,goland似乎还不支持,所以我们使用vscode来进行。
先安装go-plus插件
但是由于go插件需要的vscode版本高一点,所以版本低的同学可以升级一下vscode的版本。
升级之后就可以了。
发现.gop文件是高亮即可!
1.2.2 goland 安装
也可以直接在goland的终端安装go+
go get github.com/goplus/gop
进入到刚刚安装的地方
执行这一步
退回
安装
运行官方例子
执行一边命令
这里是没有返回值的!!
注意:这里的gop是没有mod命令的!所以我们要进入,你下载的goplus的gop中,运行这个all.bash!
不过注意!!windows用户不要直接all.bash!! 可以用记事本打开这个all.bash
直接跑这个命令!!
然后检验
2. Go与Go+的对比
安装完成之后,我们来看一下这两者语言的对比
笔者由于学业繁忙,并没有很仔细的对比,粗略对比了一下两者的对比
2.1 输出
Go
Go语言的输出,要导入fmt包中的printf,println,print的进行输出
package main import "fmt" func main() { fmt.Println("hello world") }
Go+
而Go+的输出有点像python 2.x的语法,甚至不用加括号
从这点来看,Go+也确实用途也确实是用来做数据处理部分的
2.2 字符串
Go
定义string类型
func main() { var s string s = "hello world" fmt.Println(s) }
Go+
我原来以为Go+会和python一样会把强类型转化成弱类型,没想到是保持了Go的强类型,点赞!
而我们一般使用for循环之后去遍历字符串或是列表,切片我们是这样去进行的
foo:="aaaa" for k,v:= range foo{ fmt.Println(k,v) }
2.3 循环
Go
Go语言的循环比较少,连while语句都没有。
所以一般用for来代替
for{ ... }
Go+
而Go+的for循环就是一个非常python的存在。
这个操作我上一次见这个种1:10:3的情况还是在python。
for i := range 1:10:3 { println i }
同样的Go+的循环更加简洁,直接使用<-就可以完成对字符串或是对列表切片的遍历了。非常便捷啊!
foo:="aaaa" for k,v <- foo { println k,v }
注意!!这个for循环是返回第一个符合要求的,并不会返回全部的
type st struct { zifu string zhengshu int} s := [st{"a", 1}, st{"b", 1}, st{"c", 2}] t := {x for x <- s, x.zhengshu == 1} // 返回第一个println t // {a 1} for x <- s, x.zhengshu == 1 { // 循环返回全部 println x // {a 1} // {b 1}}
还有一点
type st struct { zifu string zhengshu int} s := [st{"a", 1}, st{"b", 1}, st{"c", 2}]//{for x <- s, x.zhengshu == 1}返回的是bool if ({for x <- s, x.zhengshu == 1}) { // 一定要加括号才能跑起来! println "1111" } if {for x <- s, x.zhengshu == 1} { // 报错 println "1111" }
总结
简单体验了一下Go+,感觉就是在Go的基础上包上Python的一些小语法,整体开发效率更高了。
但是Go+还是刚出生不久,还有很长的路要走,毕竟Go+生来就是为了数据科学的,而Python在这方面简直就是天花板的地位。不过Go+的运行速度和编译能力,还是一大优势,未来可期!
临近期末了,没有花很多时间研究Go+,下一篇博文我会用Go+写一个爬虫,并进行数据分析