Fleet 语言示例集合

这里收集了 Fleet 语言的各种实用示例,从基础语法到高级特性,帮助你快速上手和深入理解 Fleet 编程。

📚 示例分类

🌟 基础示例

  • Hello World - 第一个 Fleet 程序
  • 变量和类型 - 基础数据类型和变量声明
  • 函数定义 - 函数的定义和调用
  • 控制流 - 条件语句和循环

🏗️ 数据结构

  • 结构体示例 - 结构体的定义和使用
  • 枚举示例 - 枚举类型和模式匹配
  • 集合操作 - 数组、映射、元组操作
  • 复合类型 - 复杂数据结构组合

🎯 面向对象

  • Trait 基础 - Trait 定义和实现
  • 多态示例 - 接口多态的使用
  • 设计模式 - 常见设计模式实现

🧮 算法实现

  • 排序算法 - 各种排序算法实现
  • 搜索算法 - 线性搜索、二分搜索等
  • 数据结构 - 链表、栈、队列等
  • 图算法 - 图的遍历和最短路径

🚀 实际项目

  • 命令行工具 - 简单的命令行应用
  • 文件处理 - 文件读写和处理
  • 网络编程 - 基础网络编程示例
  • Web 服务 - 简单的 Web 服务实现

🎯 按难度分级

🟢 初级 (适合初学者)

  • Hello World
  • 基础语法
  • 简单函数
  • 基础数据类型

🟡 中级 (有一定基础)

  • 结构体和枚举
  • Trait 系统
  • 错误处理
  • 集合操作

🔴 高级 (需要深入理解)

  • 复杂算法实现
  • 设计模式
  • 性能优化
  • 大型项目架构

🏃‍♂️ 快速开始

运行示例

所有示例都可以直接运行:

# 克隆仓库
git clone https://github.com/tint/fleet
cd fleet

# 构建编译器
cargo build --release

# 运行示例
./target/release/fleet examples/hello.fleet
./hello

示例结构

每个示例包含: - 源代码 - 完整的 .fleet 文件 - 详细说明 - 代码解释和关键概念 - 运行结果 - 预期输出 - 扩展练习 - 相关练习建议

📖 推荐学习路径

第一周:基础语法

  1. Hello World
  2. 变量和类型
  3. 函数定义
  4. 控制流

第二周:数据结构

  1. 结构体示例
  2. 枚举示例
  3. 集合操作

第三周:面向对象

  1. Trait 基础
  2. 多态示例
  3. 设计模式

第四周:实践项目

  1. 命令行工具
  2. 文件处理
  3. 选择一个感兴趣的项目深入实现

🎯 特色示例

🚀 高性能计算

// 并行矩阵乘法示例
fn matrix_multiply(a: [[f64]], b: [[f64]]) -> [[f64]] {
    let rows = a.len();
    let cols = b[0].len();
    let mut result = [[0.0; cols]; rows];

    loop i in 0..rows {
        loop j in 0..cols {
            loop k in 0..a[0].len() {
                result[i][j] += a[i][k] * b[k][j];
            }
        }
    }

    return result;
}

🎨 函数式编程

// 高阶函数和闭包示例
fn map(arr: [T], f: fn(T) -> U) -> [U] {
    let mut result = [];
    loop item in arr {
        result.push(f(item));
    }
    return result;
}

fn main() {
    let numbers = [1, 2, 3, 4, 5];
    let squared = map(numbers, |x| x * x);
    print(squared); // [1, 4, 9, 16, 25]
}

🔧 系统编程

// 文件系统操作示例
struct FileInfo {
    name: str,
    size: u64,
    is_directory: bool,
}

fn list_directory(path: str) -> [FileInfo] {
    let mut files = [];

    // 遍历目录(伪代码)
    loop entry in fs::read_dir(path) {
        files.push(FileInfo {
            name: entry.name(),
            size: entry.size(),
            is_directory: entry.is_dir(),
        });
    }

    return files;
}

🤝 贡献示例

我们欢迎社区贡献更多示例!

贡献指南

  1. 选择主题 - 选择一个有用的编程主题
  2. 编写代码 - 确保代码可以编译和运行
  3. 添加文档 - 包含详细的说明和注释
  4. 测试验证 - 确保示例正确工作
  5. 提交 PR - 通过 GitHub 提交贡献

示例模板

# 示例标题

## 概述
简要描述示例的目的和功能

## 代码实现
\`\`\`fleet
// 完整的 Fleet 代码
\`\`\`

## 关键概念
- 概念1:解释
- 概念2:解释

## 运行结果
\`\`\`
预期输出
\`\`\`

## 扩展练习
1. 练习1
2. 练习2

📊 示例统计

分类 示例数量 难度分布
基础示例 15+ 🟢🟢🟢🟡
数据结构 12+ 🟢🟡🟡🔴
面向对象 10+ 🟡🟡🔴🔴
算法实现 20+ 🟡🔴🔴🔴
实际项目 8+ 🟡🔴🔴🔴

🎯 学习建议

  1. 循序渐进 - 从简单示例开始,逐步增加复杂度
  2. 动手实践 - 不要只看代码,要亲自编写和运行
  3. 理解原理 - 关注代码背后的设计思想和原理
  4. 举一反三 - 尝试修改示例,实现类似功能
  5. 解决问题 - 用学到的知识解决实际问题

🔗 相关资源


🚀 开始探索 Fleet 编程的精彩世界!

选择一个感兴趣的示例开始学习,或者按照推荐路径系统地掌握 Fleet 编程技能。