Skip to content

快速开始 ​

项目链接:GitHub · Playground

系统要求 ​

  • 操作系统:Windows、macOS、Linux
  • Rust 1.70+(用于从源码构建)
  • 内存:至少 256MB

安装 ​

方式一:从 crates.io 安装 ​

bash
cargo install mailang-cli

方式二:从源码构建 ​

bash
git clone https://github.com/Maicarons/mailang.git
cd mailang
cargo build --release

构建完成后,二进制文件位于 target/release/mailang。

方式三:下载预编译二进制 ​

从 GitHub Releases 下载对应平台的二进制文件。

验证安装 ​

bash
mailang --version
# 输出:mailang <version>

Hello World ​

创建 hello.mai:

// 这是 MaìLang 的 Hello World
println("你好,MaìLang!")

运行:

bash
mailang run hello.mai
# 输出:你好,MaìLang!

CLI 子命令 ​

命令说明
mailang启动 REPL
mailang run file.mai运行源文件
mailang run file.mailangbc运行编译后的字节码
mailang eval '1+2'执行内联代码
mailang build file.mai编译到 .mailangbc
mailang fmt file.mai格式化源文件(--check 仅检查)
mailang deps解析 mailang.toml 路径依赖
mailang publish / install / search / yank / registry文件系统 / 静态 HTTP 包注册表
mailang lsp启动 Language Server

REPL 交互模式 ​

bash
mailang
MaìLang REPL 
Type 'exit' or 'quit' to exit.
> 1 + 2
3
> let name = "MaìLang"
> println("Hello, {name}!")
Hello, MaìLang!
> exit

内联代码执行 ​

bash
mailang eval 'println(42 * 2)'
# 输出:84

基本语法速览 ​

变量 ​

let x = 42              // 不可变变量
var y = 100             // 可变变量
const PI = 3.14159      // 常量
let name: str = "麦语"  // 显式类型

函数 ​

fn add(a: int, b: int) -> int {
    return a + b
}

控制流 ​

if x > 10 {
    println("大于10")
} elif x > 5 {
    println("大于5")
} else {
    println("小于等于5")
}

for i in 0..10 {
    println(i)
}

面向对象与 Trait ​

class Animal {
    let name: str

    fn init(name: str) {
        this.name = name
    }

    fn speak() -> str {
        return "{this.name} speaks"
    }
}

class Dog extends Animal {
    override fn speak() -> str {
        return "{this.name} barks!"
    }
}

let dog = Dog("小黑")
println(dog.speak())  // 小黑 barks!

错误处理 ​

fn divide(a: float, b: float) -> Result<float, str> {
    if b == 0.0 {
        return Err("Division by zero")
    }
    return Ok(a / b)
}

match divide(10.0, 3.0) {
    Ok(v) => println("Result: {v}"),
    Err(e) => println("Error: {e}")
}

下一步 ​