前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个好玩的 Go 语言 REPL 工具

一个好玩的 Go 语言 REPL 工具

作者头像
用户7731323
发布2022-11-16 14:42:44
7800
发布2022-11-16 14:42:44
举报
文章被收录于专栏:GoUpUpGoUpUp

简介

周末闲逛 GitHub 的时候发现一个很好玩的 Go 语言的 REPL(read-eval-print-loop)工具。本文和大家分享一下这个工具:gore

首先放一张 GitHub 的动图感受一下:

快速使用

gore 是一个命令行工具,需要配合 Go Module 安装。Go 环境安装完成之后,执行下面的命令安装 gore:

代码语言:javascript
复制
$ go install github.com/x-motemen/gore/cmd/gore@latest

go install 命令会将会在GOPATH/bin目录生成的 gore 可执行文件。强烈推荐大家把GOPATH/bin加入到系统的可执行文件搜索目录(即

执行下面的命令即可进入 Go 的 REPL:

代码语言:javascript
复制
$ gore

命令

目前支持的命令还不多。我将命令分为两类,一种是基础命令,一种是代码相关命令。

注意,在 gore 中所有的命令必须以:开始。非:开始的行会被识别为代码。

基础命令

  • help:显示命令列表
  • doc:我觉得这个命令挺有意思,它可以显示一个包、结构体或接口的文档。如果要查看标准库的文档,例如math/bits,可以直接键入命令:doc bits

注意,要查看文档的包必须先使用:import命令导入。并且传给:doc命令的参数必须是包去掉路径的部分,例如我们不能使用:doc math/bits,必须使用:doc bits

doc 也可以用来查看第三方库的文档。也是先导入后查看:

  • quit:退出 REPL。

代码命令

  • import:导入包的命令。既可以导入标准库的包,也可以导入第三方库的包,gore 会自动调用 go get 去下载第三方库
  • type:输出表达式会变量的类型
  • print:我们在 gore 中输入的代码都会存放在一个临时文件中。print 命令会打印这个临时文件的内容。
  • clear:清空临时文件。执行 clear 命令之后 print 将会打印一个空的 main 函数。
  • write [<filename>]:将临时文件保存到指定的路径中。

特性

  • 行编辑:通过左右键在行内移动光标,退格键删除光标前的内容,重新输入内容
  • 命令历史:gore 会保存之前输入的命令历史,可以通过上下键找出之前执行的命令。
  • 多行输入:如果 gore 检测到输入还没有结束就换行了,它会等待输入结束再执行这条语句。例如 if 语句
  • 自动补全:使用 TAB 键可以自动补全命令,不能补全代码
  • 代码补全:这个我没试过,文档介绍说需要 gocode 配合
  • 自动导入:使用选项-autoimport启动可以自动导入要使用的包

缺点

体验下来,我觉得有几个缺点:

  • 启动速度较慢。键入 gore 命令按下回车要等好几秒。其他命令的执行速度也不快
  • doc 命令的限制有点奇怪。为什么包不能加路径?go doc 是可以加路径的。也有可能我使用的姿势不对,有知道的可以指点一二😀
  • 多行输入有点反直觉。如果我没有输入完整的代码,它会一直等着我输入。可是我已经不想输入了。有一次我键入 type 命令时忘记加:了,就变成这样了:

当然,可以通过Ctrl + C终止输入,这个让我摸索了好一会儿。我个人使用其他软件的经验是连续几个空行就可以终止了。这一点严格来说不算缺点,只是不符合我的习惯。

总结

总体来说 gore 是一个比较好玩的工具,期待项目发展壮大!

大家如果发现好玩、好用的 Go 语言库,欢迎到 Go 每日一库 GitHub 上提交 issue😄

参考

  1. gore GitHub:github.com/x-motemen/gore
  2. Go 每日一库 GitHub:https://github.com/darjun/go-daily-lib
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GoUpUp 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 快速使用
  • 命令
    • 基础命令
      • 代码命令
      • 特性
      • 缺点
      • 总结
      • 参考
      相关产品与服务
      命令行工具
      腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档