README
¶
🇨🇳 凹语言™ The Wa Programming Language
主页 | Playground | 目标 | 路线 | 社区 | 日志 | 论坛
Document | Playground | Goals | Roadmap | Community | Changelog | Discussions
凹语言™(凹读音“Wa”)是 针对 WASM 平台设计的通用编程语言,同时支持 Linux、macOS 和 Windows 等主流操作系统和 Chrome 等浏览器环境,同时也支持作为独立Shell脚本和被嵌入脚本模式执行。
Wa is a general-purpose programming language designed for developing robustness and maintainability WebAssembly software. Instead of requiring complex toolchains to set up, you can simply go install it - or run it in a browser.
- 主页 (Homepage): https://wa-lang.org
- 代码仓库 (Github): https://github.com/wa-lang/wa
- 代码仓库 (Gitee): https://gitee.com/wa-lang/wa
- Go 参考文档: https://pkg.go.dev/github.com/wa-lang/wa
- 开发工具 (Develop Tools): Playground, VSCode 插件, Fleet 插件, Vim 插件
- 开发组 (Core Team): 柴树杉(chai2010)、丁尔男(Ending)、史斌(Benshi)、扈梦明(xxxDeveloper)、刘云峰(leaftree)、宋汝阳(ShiinaOrez)
Playground 在线预览
https://wa-lang.org/playground
本地安装和测试 (Install and Run):
go install github.com/wa-lang/wa@latest
wa init -name=_examples/hi
wa run _examples/hi
项目尚处于原型开源阶段,如果有共建和PR需求请参考 如何贡献代码。
The Wa project is still in very early stage. If you want to submit PR, please read the Contribution Guide(Chinese).
例子: 凹语言 (Example: Print 凹语言)
打印字符和调用函数(Print rune and call function):
import "fmt"
fn main {
println("你好,凹语言!")
println(add(40, 2))
fmt.Println(1+1)
}
fn add(a: i32, b: i32) => i32 {
return a+b
}
运行并输出结果 (Execute the program):
$ go run main.go hello.wa
你好,凹语言!
42
2
例子: 打印素数 (Example: Print Prime)
打印 30 以内的素数 (Print prime numbers up to 30):
# 版权 @2021 凹语言™ 作者。保留所有权利。
fn main {
for n := 2; n <= 30; n = n + 1 {
var isPrime int = 1
for i := 2; i*i <= n; i = i + 1 {
if x := n % i; x == 0 {
isPrime = 0
}
}
if isPrime != 0 {
println(n)
}
}
}
运行并输出结果 (Execute the program):
$ go run main.go run _examples/prime
2
3
5
7
11
13
17
19
23
29
更多例子 (More examples) _examples
作为脚本执行 (Execut as a script)
凹语言本身也可以像 Lua 语言被嵌入 Go 宿主语言环境执行 (The Wa language itself can also be executed like the Lua language embedded in the Go host locale):
package main
import (
"fmt"
"github.com/wa-lang/wa/api"
)
func main() {
output, err := api.RunCode("hello.wa", "fn main() { println(40+2) }")
fmt.Print(string(output), err)
}
注:作为脚本执行目前只支持本地环境。(Note: Executing as a script currently only supports native environments.)
版权(License)
版权 @2019-2022 凹语言™ 作者。保留所有权利。(Copyrighe @2019-2022 The Wa author. All rights reserved.)