我的Go+语言初体验——环境搭建篇(直男程序员的真实体验)

简介: 我的Go+语言初体验——环境搭建篇(直男程序员的真实体验)

前言

当我第一眼看到这个活动的时候,吸引我的不是所谓的奖励,而是活动文章中的“填补了国人开发者在数据科学领域的空白”,很有志气的一句话,我喜欢。我是个直男,也有代码洁癖,所以我会按照本心写真实体验,如果本文的语言太锋利伤害到了他人的话,只能说句抱歉,但是没打算改。


先说一下我对编程语言的看法,随着工作年限的增长,越来越觉着每个语言都有着其内核特点。目前最火的语言无不将自己的内核特点发挥到极致,就不一一举例了。其次不同的语言适用的场景也不同,有的适用于算法、有的适用于通讯、有的适用于工程。越火的语言,越是在自己擅长的场景中,有着自己庞大的生态圈、社交圈。你可以在各类网站上找到解决问题的办法,前人栽树后人乘凉。所以编程语言在我看来,总是带有着时代性,时代需要什么场景,什么语言自然会火起来。


初看到Go+语言的时候,我首先是有点失望的。因为顾名思义,Go+的内核还是go语言。go语言的强大自不必说,所以我上面说的内核特点一下子让我少了很多期待。凡事不能看表面,按照自己的习惯正式开始Go+语言的初体验。


官网体验

发一下Go+的官网地址:GoPlus - The Go+ language for engineering, STEM education, and data science


image.png


我找了一圈没有找到中文切换的按钮,后来我征询了一下微信群,貌似就没有中文官网。这里我提前吐槽一句,既然是国人的语言,为什么官网不先做中文的呢?


Go+语言项目github地址:https://github.com/goplus/gop


image.png


还是英文的,官方给出了Go+的定位 ,静态类型的语言、完全兼容go语言、更好的可读性。


在安装Go+之前,还是要点出Go+官网的功能点,可以在线编译语言,点击Try Go+,会弹出在线调试窗口。


image.png


环境搭建

首先需要安装Go语言,这个是前提条件,怎么装Go就不多说了。下面直接装Go+。


官方给出的安装步骤只有短短3句,花了我不少时间找其他资料和微信群沟通,官方资料如下:


image.png


1、按照这个流程安装下来,不出意外你会碰到和我下面一样报错。


image.png


解决方法在cmd中执行下面两行命令:


go env -w GO111MODULE=on

go env -w GOPROXY=https://goproxy.io,direct

安装成功后执行gop命令验证一下:


image.png


2、创建workspace后,开始第一个项目。我创建了一个test项目文件夹,在里面创建了一个test.gop文件。编写代码如下:


package main

import "fmt"

func main()  {

fmt.Println("hello world!")

}

使用命令:gop run test.gop,会发现如下报错:

image.png



经过多方求证,由于我是使用独立的workspace需要初始化一些必要的文件,需要在文件夹test下执行如下命令:


gop mod init test

go get github.com/goplus/gop/builtin

OK执行好了


image.png


3、vscodeIDE集成,需要安装goplus扩展插件。


image.png


打开项目后,在运行和调试中添加Node.js的配置,配置文件与项目结构如下。


image.png


launch.json文件内容如下:


// .vscode\launch.json
{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "gop run",
      "type": "node",
      "request": "launch",
      "runtimeExecutable": "gop",
      "cwd": "${workspaceFolder}",
      "program": "${file}",
      "runtimeArgs": [
        "run"
      ],
      "environment": [],
      "console": "integratedTerminal",
    }
  ]
}

执行下来没什么问题。


总结

目前我只是初体验了安装环境以及代码初步调试,还未对代码内容进行调试,下一篇会开始对go+语言部分进行调试。所以对目前已经体验的部分做一个总结。


缺点:


1)官网以及github项目均没有对中文进行支持,不太理解Go+对国人这两个字的理解,这点我要第一个说出来,希望后期团队可以支持中文支持。


2)安装Go+语言必须安装Go语言,这点我不太理解。一般来说衍生语言都会对应固定的版本号,不然假设我的go语言升级了版本,部分语法做了调整,而go+语言还未对该版本的语法支持,是不是我的Go+语言项目就无法运行了?所以我建议Go+可以将固定版本的Go语言一并打在安装包中,可以让使用者直接安装一个安装包即可进行编程,以后语言的版本升级也可以将Go语言同步升级,无需依赖外部的go语言环境。


3)初始化项目的命令可以在vscode的扩展插件进行支持,在编译运行过程中帮用户自动生成,减轻编译的复杂性。


4)官网很多语法的demo还未完善,建议逐步完善。现有在线调试案例过于简单,且不具备代表性。


优点:


1)官网具备在线调试功能,还是很友好的,虽然有点卡。


如果本文对你有用的话,点个赞吧,谢谢!


相关文章
|
14天前
|
存储 监控 算法
内网监控系统之 Go 语言布隆过滤器算法深度剖析
在数字化时代,内网监控系统对企业和组织的信息安全至关重要。布隆过滤器(Bloom Filter)作为一种高效的数据结构,能够快速判断元素是否存在于集合中,适用于内网监控中的恶意IP和违规域名筛选。本文介绍其原理、优势及Go语言实现,提升系统性能与响应速度,保障信息安全。
25 5
|
24天前
|
算法 安全 Go
Go语言中的加密和解密是如何实现的?
Go语言通过标准库中的`crypto`包提供丰富的加密和解密功能,包括对称加密(如AES)、非对称加密(如RSA、ECDSA)及散列函数(如SHA256)。`encoding/base64`包则用于Base64编码与解码。开发者可根据需求选择合适的算法和密钥,使用这些包进行加密操作。示例代码展示了如何使用`crypto/aes`包实现对称加密。加密和解密操作涉及敏感数据处理,需格外注意安全性。
40 14
|
24天前
|
Go 数据库
Go语言中的包(package)是如何组织的?
在Go语言中,包是代码组织和管理的基本单元,用于集合相关函数、类型和变量,便于复用和维护。包通过目录结构、文件命名、初始化函数(`init`)及导出规则来管理命名空间和依赖关系。合理的包组织能提高代码的可读性、可维护性和可复用性,减少耦合度。例如,`stringutils`包提供字符串处理函数,主程序导入使用这些函数,使代码结构清晰易懂。
69 11
|
24天前
|
存储 安全 Go
Go语言中的map数据结构是如何实现的?
Go 语言中的 `map` 是基于哈希表实现的键值对数据结构,支持快速查找、插入和删除操作。其原理涉及哈希函数、桶(Bucket)、动态扩容和哈希冲突处理等关键机制,平均时间复杂度为 O(1)。为了确保线程安全,Go 提供了 `sync.Map` 类型,通过分段锁实现并发访问的安全性。示例代码展示了如何使用自定义结构体和切片模拟 `map` 功能,以及如何使用 `sync.Map` 进行线程安全的操作。
|
28天前
|
监控 安全 算法
深度剖析核心科技:Go 语言赋能局域网管理监控软件进阶之旅
在局域网管理监控中,跳表作为一种高效的数据结构,能显著提升流量索引和查询效率。基于Go语言的跳表实现,通过随机化索引层生成、插入和搜索功能,在高并发场景下展现卓越性能。跳表将查询时间复杂度优化至O(log n),助力实时监控异常流量,保障网络安全与稳定。示例代码展示了其在实际应用中的精妙之处。
41 9
我的Go+语言初体验——祝福留言小系统,让她也可以感受到你的祝福(上)
环境搭建 GO+版的祝福语管理系统 前期想法 界面展示 整体界面 增加祝福信息 修改操作 删除操作 退出
我的Go+语言初体验——祝福留言小系统,让她也可以感受到你的祝福(上)
|
2月前
|
存储 监控 算法
员工上网行为监控中的Go语言算法:布隆过滤器的应用
在信息化高速发展的时代,企业上网行为监管至关重要。布隆过滤器作为一种高效、节省空间的概率性数据结构,适用于大规模URL查询与匹配,是实现精准上网行为管理的理想选择。本文探讨了布隆过滤器的原理及其优缺点,并展示了如何使用Go语言实现该算法,以提升企业网络管理效率和安全性。尽管存在误报等局限性,但合理配置下,布隆过滤器为企业提供了经济有效的解决方案。
90 8
员工上网行为监控中的Go语言算法:布隆过滤器的应用
|
2月前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
47 7
|
2月前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
2月前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
119 71