我的Go+语言初体验—— 一个Golang开发者的Go+初体验

本文介绍了作者对Go+语言的初步尝试,包括在Linux和Windows下的安装过程,以及Go与Go+在输出、字符串处理和循环方面的对比。Go+在语法上借鉴了Python的简洁性,但保留了Go的强类型特性,适合数据处理。尽管Go+尚处于早期阶段,其运行效率和编译能力展现出潜力。
摘要由CSDN通过智能技术生成

“我的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包中的printfprintlnprint的进行输出

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"
	}

总结

  1. 简单体验了一下Go+,感觉就是在Go的基础上包上Python的一些小语法,整体开发效率更高了。
  2. 但是Go+还是刚出生不久,还有很长的路要走,毕竟Go+生来就是为了数据科学的,而Python在这方面简直就是天花板的地位。不过Go+的运行速度和编译能力,还是一大优势,未来可期!
  3. 临近期末了,没有花很多时间研究Go+,下一篇博文我会用Go+写一个爬虫,并进行数据分析
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小生凡一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值