基础语法
本章将介绍 Fleet 语言的基础语法,包括变量、函数、注释等核心概念。
📝 Hello World
让我们从经典的 Hello World 程序开始:
fn main() {
print("Hello, Fleet!");
}
解释:
- fn 关键字定义函数
- main 是程序的入口函数
- print() 是内置的输出函数
- 字符串使用双引号包围
🔤 变量和绑定
Fleet 使用 let 关键字声明变量:
fn main() {
let name = "Fleet";
let version = 1;
let is_stable = true;
print(name);
print(version);
print(is_stable);
}
类型注解
虽然 Fleet 支持类型推断,但你也可以显式指定类型:
fn main() {
let name: str = "Fleet";
let version: int = 1;
let pi: f64 = 3.14159;
print("Language: " + name);
print("Version: " + version);
print("Pi: " + pi);
}
可变变量
默认情况下,变量是不可变的。使用 var 声明可变变量:
fn main() {
let immutable = 10; // 不可变
var mutable = 20; // 可变
// immutable = 15; // 错误!不能修改不可变变量
mutable = 25; // 正确
print(mutable);
}
🔢 基础数据类型
Fleet 提供了丰富的基础数据类型:
整数类型
fn main() {
// 有符号整数
let i8_val: i8 = 127;
let i16_val: i16 = 32767;
let i32_val: i32 = 2147483647;
let i64_val: i64 = 9223372036854775807;
// 无符号整数
let u8_val: u8 = 255;
let u16_val: u16 = 65535;
let u32_val: u32 = 4294967295;
let u64_val: u64 = 18446744073709551615;
// 架构相关
let int_val: int = 42; // 默认有符号整数
let uint_val: uint = 42; // 默认无符号整数
}
浮点数类型
fn main() {
let f32_val: f32 = 3.14;
let f64_val: f64 = 3.141592653589793;
let default_float = 2.718; // 默认为 f64
// 科学计数法
let large_num = 1.23e10;
let small_num = 1.23e-10;
}
字符和字符串
fn main() {
// 字符类型
let rune_char: rune = 'A'; // Unicode 字符
let byte_char: byte = b'A'; // 单字节字符
// 字符串类型
let greeting: str = "Hello, World!";
let multiline = "This is a
multiline string";
// 原始字符串
let raw_string = r"C:\Users\Name\Documents";
}
布尔类型
fn main() {
let is_true: bool = true;
let is_false: bool = false;
// 布尔运算
let and_result = is_true && is_false; // false
let or_result = is_true || is_false; // true
let not_result = !is_true; // false
}
🔧 函数
函数是 Fleet 程序的基本构建块:
基本函数定义
fn greet() {
print("Hello from function!");
}
fn main() {
greet();
}
带参数的函数
fn greet_person(name: str) {
print("Hello, " + name + "!");
}
fn add(a: int, b: int) {
let result = a + b;
print("Result: " + result);
}
fn main() {
greet_person("Alice");
add(5, 3);
}
返回值
fn add(a: int, b: int) -> int {
return a + b;
}
fn multiply(a: int, b: int) -> int {
a * b // 最后一个表达式自动返回
}
fn main() {
let sum = add(5, 3);
let product = multiply(4, 6);
print("Sum: " + sum);
print("Product: " + product);
}
💬 注释
Fleet 支持单行注释:
// 这是单行注释
fn main() {
let x = 42; // 行末注释
// 多行注释可以这样写:
// 第一行注释
// 第二行注释
// 第三行注释
print(x);
}
🧮 运算符
Fleet 支持常见的算术、比较和逻辑运算符:
算术运算符
fn main() {
let a = 10;
let b = 3;
let addition = a + b; // 13
let subtraction = a - b; // 7
let multiplication = a * b; // 30
let division = a / b; // 3
let modulo = a % b; // 1
print("Addition: " + addition);
print("Subtraction: " + subtraction);
print("Multiplication: " + multiplication);
print("Division: " + division);
print("Modulo: " + modulo);
}
比较运算符
fn main() {
let a = 10;
let b = 20;
let equal = a == b; // false
let not_equal = a != b; // true
let less_than = a < b; // true
let less_equal = a <= b; // true
let greater_than = a > b; // false
let greater_equal = a >= b; // false
print("Equal: " + equal);
print("Not equal: " + not_equal);
print("Less than: " + less_than);
}
位运算符
fn main() {
let a = 12; // 1100 in binary
let b = 10; // 1010 in binary
let and_result = a & b; // 8 (1000)
let or_result = a | b; // 14 (1110)
let xor_result = a ^ b; // 6 (0110)
let not_result = !a; // -13 (bitwise NOT)
let left_shift = a << 1; // 24 (11000)
let right_shift = a >> 1; // 6 (110)
print("AND: " + and_result);
print("OR: " + or_result);
print("XOR: " + xor_result);
}
🎯 练习
尝试编写以下程序来练习基础语法:
- 计算器程序:编写函数计算两个数的四则运算
- 温度转换:编写函数在摄氏度和华氏度之间转换
- 数字分析:给定一个整数,判断它是正数、负数还是零
示例解答
// 1. 计算器程序
fn calculator() {
let a = 15;
let b = 4;
print("Numbers: " + a + " and " + b);
print("Addition: " + (a + b));
print("Subtraction: " + (a - b));
print("Multiplication: " + (a * b));
print("Division: " + (a / b));
}
// 2. 温度转换
fn celsius_to_fahrenheit(celsius: f64) -> f64 {
return celsius * 9.0 / 5.0 + 32.0;
}
fn fahrenheit_to_celsius(fahrenheit: f64) -> f64 {
return (fahrenheit - 32.0) * 5.0 / 9.0;
}
// 3. 数字分析
fn analyze_number(num: int) {
if num > 0 {
print("Positive number");
} else if num < 0 {
print("Negative number");
} else {
print("Zero");
}
}
fn main() {
calculator();
let temp_c = 25.0;
let temp_f = celsius_to_fahrenheit(temp_c);
print("25°C = " + temp_f + "°F");
analyze_number(42);
analyze_number(-10);
analyze_number(0);
}
📖 下一步
恭喜你完成了 Fleet 基础语法的学习!接下来,让我们深入了解 类型系统,学习 Fleet 强大的类型特性。