快速开始

欢迎来到 Fleet 编程语言!本指南将带你编写第一个 Fleet 程序,并介绍基本的开发流程。

🎯 学习目标

完成本指南后,你将能够: - 编写并运行第一个 Fleet 程序 - 理解 Fleet 的基本语法 - 使用 Fleet 编译器 - 掌握基本的开发工具

📝 第一个程序:Hello World

创建项目目录

mkdir my-first-fleet-project
cd my-first-fleet-project

编写 Hello World

创建文件 hello.fleet

fn main() {
    print("Hello, Fleet!");
}

编译并运行

# 编译程序
fleet hello.fleet

# 运行程序
./hello

输出

Hello, Fleet!

🎉 恭喜!你已经成功运行了第一个 Fleet 程序!

🔤 基础语法示例

变量和数据类型

fn main() {
    // 不可变变量
    let name = "Fleet";
    let version = 1;
    let is_awesome = true;

    // 可变变量
    var counter = 0;
    counter = counter + 1;

    // 类型注解
    let pi: f64 = 3.14159;
    let count: int = 42;

    print("Language: " + name);
    print("Version: " + version);
    print("Counter: " + counter);
}

函数定义

// 无返回值函数
fn greet(name: str) {
    print("Hello, " + name + "!");
}

// 有返回值函数
fn add(a: int, b: int) -> int {
    return a + b;
}

fn main() {
    greet("World");

    let result = add(5, 3);
    print("5 + 3 = " + result);
}

控制流

fn main() {
    let number = 42;

    // if-else 语句
    if number > 0 {
        print("Positive number");
    } else if number < 0 {
        print("Negative number");
    } else {
        print("Zero");
    }

    // loop 循环
    var i = 0;
    loop i in 0..5 {
        print("Count: " + i);
    }
}

🏗️ 数据结构

结构体

struct Point {
    x: int,
    y: int,
}

fn main() {
    let p = Point { x: 10, y: 20 };
    print("Point: (" + p.x + ", " + p.y + ")");
}

枚举

enum Color {
    Red,
    Green,
    Blue,
    RGB(int, int, int),
}

fn main() {
    let red = Color::Red;
    let custom = Color::RGB(255, 128, 0);

    match red {
        Color::Red => print("It's red!"),
        Color::Green => print("It's green!"),
        Color::Blue => print("It's blue!"),
        Color::RGB(r, g, b) => print("Custom color: " + r + ", " + g + ", " + b),
    }
}

🎯 Trait 系统

trait Display {
    fn show(self) -> str;
}

struct Person {
    name: str,
    age: int,
}

impl Display for Person {
    fn show(self) -> str {
        return self.name + " (" + self.age + " years old)";
    }
}

fn main() {
    let person = Person { name: "Alice", age: 30 };
    print(person.show());
}

🗂️ 集合类型

数组

fn main() {
    let numbers = [1, 2, 3, 4, 5];
    print("First number: " + numbers[0]);
    print("Array length: " + numbers.len());
}

映射 (Map)

fn main() {
    let scores = map{
        "Alice": 95,
        "Bob": 87,
        "Charlie": 92,
    };

    print("Alice's score: " + scores["Alice"]);

    // 迭代映射
    loop (name, score) in scores {
        print(name + ": " + score);
    }
}

🛠️ 开发工具使用

编译器选项

# 基本编译
fleet program.fleet

# 指定输出文件名
fleet program.fleet -o my_program

# 优化编译
fleet program.fleet --optimize

# 显示详细信息
fleet program.fleet --verbose

# 只检查语法不生成代码
fleet program.fleet --check

项目结构建议

my-fleet-project/
├── src/
│   ├── main.fleet          # 主程序
│   ├── lib.fleet           # 库文件
│   └── utils.fleet         # 工具函数
├── examples/
│   └── demo.fleet          # 示例程序
├── tests/
│   └── test_main.fleet     # 测试文件
└── README.md               # 项目说明

🧪 测试你的程序

创建一个简单的计算器程序:

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

fn subtract(a: int, b: int) -> int {
    return a - b;
}

fn multiply(a: int, b: int) -> int {
    return a * b;
}

fn divide(a: int, b: int) -> int {
    if b == 0 {
        print("Error: Division by zero!");
        return 0;
    }
    return a / b;
}

fn main() {
    let x = 10;
    let y = 3;

    print("Calculator Demo:");
    print(x + " + " + y + " = " + add(x, y));
    print(x + " - " + y + " = " + subtract(x, y));
    print(x + " * " + y + " = " + multiply(x, y));
    print(x + " / " + y + " = " + divide(x, y));
}

保存为 calculator.fleet,编译并运行:

fleet calculator.fleet
./calculator

🎓 最佳实践

代码风格

  1. 命名约定
  2. 函数和变量:snake_case
  3. 结构体和枚举:PascalCase
  4. 常量:UPPER_CASE

  5. 代码组织

  6. 每个文件一个主要概念
  7. 相关函数放在一起
  8. 使用有意义的注释

  9. 错误处理

  10. 使用 OptionResult 类型
  11. 避免 panic,优雅处理错误
  12. 提供有用的错误信息

性能提示

  1. 避免不必要的内存分配
  2. 使用适当的数据结构
  3. 利用编译器优化

🔍 调试技巧

打印调试

fn debug_function(value: int) {
    print("Debug: value = " + value);
    // 你的代码逻辑
}

条件编译

fn main() {
    #[cfg(debug)]
    print("Debug mode enabled");

    // 程序逻辑
}

📚 进一步学习

现在你已经掌握了基础知识,建议继续学习:

  1. 基础语法 - 深入了解语法细节
  2. 类型系统 - 掌握类型系统
  3. Trait 系统 - 学习面向对象编程
  4. 示例程序 - 查看实际应用
  5. API 参考 - 查阅完整 API

🤝 获取帮助

遇到问题?这些资源可以帮助你:

🎉 恭喜!

你已经完成了 Fleet 语言的快速入门!现在你可以:

  • ✅ 编写基本的 Fleet 程序
  • ✅ 使用编译器工具
  • ✅ 理解基本语法概念
  • ✅ 开始构建自己的项目

继续探索 Fleet 的强大功能,开始你的编程之旅吧!🚀