我们的愿景是让每个人都能创建生产级应用程序。
- 简单易懂
- 最佳实践中的语法集比 Python 更小
- 源自Go,良好的工程基础易于构建大型项目
Go+ 编程语言专为工程、STEM 教育和数据科学而设计。
- 对于工程:使用儿童可以掌握的最简单的语言进行工作。
- 对于STEM教育:学习一种可以在未来工作中使用的工程语言。
- 对于数据科学:用同一种语言与工程师交流。
更多详细信息,请参见快速入门。
与大多数语言的函数调用风格不同,Go+推荐命令风格的代码:
println "Hello world"
为了强调我们对命令风格的偏好,我们引入echo
以下命令作为别名println
:
echo "Hello world"
有关编码风格的更多讨论,请参阅https://tutorial.goplus.org/hello-world。
One language can change the whole world.
Go+ is a "DSL" for all domains.
Rob Pike 曾经说过,如果他只能向 Go 引入一项功能,他会选择interface
而不是goroutine
。对于 Go+来说和 Go 一样classfile
重要。interface
在Go+的设计理念中,我们不推荐DSL
(Domain Specific Language)。但是SDF
(特定领域友好性)非常重要。Go+ 的哲学是SDF
:
Don't define a language for specific domain.
Abstract domain knowledge for it.
Go+ 引入classfile
了抽象领域知识。
听起来有点抽象?让我们看看一些 Go+ 类文件。
- STEM 教育:spx:Go+ 2D 游戏引擎
- Web 编程:yap:另一个 HTTP Web 框架
- Web 编程:yaptest:HTTP 测试框架
- Web 编程:ydb:数据库框架
- DevOps:gsh:Go+ DevOps 工具
- 单元测试:类文件:单元测试
- 机制:什么是类文件
- 机制:Go+ 类文件
通过这个例子你可以学习如何实现多个演员之间的对话。
以下是Kai.spx中的一些代码:
onStart => { say "Where do you come from?", 2 broadcast "1" }onMsg "2", => { say "What's the climate like in your country?", 3 broadcast "3" }
我们打电话onStart
并onMsg
聆听事件。onStart
程序启动时被调用。onMsg
当有人呼叫broadcast
广播消息时被呼叫。
节目开始后,凯说道Where do you come from?
,然后广播了这条消息1
。谁会收到此消息?让我们看看Jaime.spx中的代码:
onMsg "1", => { say "I come from England.", 2 broadcast "2" }
是的,詹姆收到消息1
后说道I come from England.
。然后他广播了这条消息2
。凯接过,说道What's the climate like in your country?
。
以下过程非常相似。通过这种方式,您可以实现多个演员之间的对话。
有关更多详细信息,请参阅spx:Go+ 2D 游戏引擎。
提供静态文件和处理动态 GET/POST 请求的能力的演示:
static "/foo", FS("public") static "/" # Equivalent to static "/", FS("static")get "/p/:id", ctx => { ctx.json { "id": ctx.param("id"), } }
run ":8080"
如果运行它并访问http://localhost:8080/p/123,您将得到:
{"id":"123"}
有关更多详细信息,请参阅yap:另一个 HTTP Web 框架。
是的,现在你可以shell script
用 Go+ 编写了。它支持所有 shell 命令。
让我们创建一个名为的文件./example.gsh
并写入以下代码:
mkdir "testgsh"
不需要go.mod
文件,gop run ./example.gsh
直接输入即可运行。
有关更多详细信息,请参阅gsh:Go+ DevOps 工具。
- 静态类型语言。
- 最简单的儿童也能掌握的工程语言(脚本风格)。
- 性能:与 Go 一样快(Go+ 的主要后端编译为人类可读的 Go)。
- 与Go完全兼容,可以在同一个包中混合Go/Go+代码(参见Go/Go+混合编程)。
- 不支持 DSL(领域特定语言),但支持 SDF(特定领域友好)。
- 支持Go代码生成(主后端)和字节码后端(REPL:参见iGo+)。
- 与 C 交互的最简单方法(支持 cgo,但不推荐)。
- 强大的内置数据处理能力。
winget install goplus.gop
sudo bash -c ' echo "deb [trusted=yes] https://pkgs.goplus.org/apt/ /" > /etc/apt/sources.list.d/goplus.list'
sudo apt update
sudo apt install gop
sudo bash -c 'echo -e "[goplus]\nname=Go+ Repo\nbaseurl=https://pkgs.goplus.org/yum/\nenabled=1\ngpgcheck=0" > /etc/yum.repos.d/goplus.repo'
sudo yum install gop
通过brew安装
$ brew install goplus
注意:需要go1.18或更高版本
git clone https://github.com/goplus/gop.git cd gop# On mac/linux run: ./all.bash # On Windows run: all.bat
Go+ 项目欢迎所有贡献者。我们感谢您的帮助!
有关更多详细信息,请参阅贡献和编译器设计。
如果您喜欢或正在使用 Go+ 来学习或启动您的项目,请给它一颗星。谢谢!