====== 基础语法 ====== ==== [1] 变量声明 ==== 模板: // 普通变量 var var_name = expression; // 大整数变量(任意精度) bigint big_var_name = expression; 示例: var pi = 3.1415; // 浮点数 var score = 95; // 整数 var half = 1/2; // 有理数(自动以分数形式存储) bigint fact_25 = 25!; // 大整数(25的阶乘) ==== [2] 注释 ==== 模板: // 单行注释 /* 块注释:可多行 */ 示例: // 单行注释 var radius = 5; // 半径变量 /* 块注释示例: 计算圆面积 */ var area = pi() * radius ^ 2; ==== [3] 条件语句(if-else) ==== 模板: if condition { // 条件为 true 执行 } else { // 条件为 false 执行 } 示例: var num = 8; if num > 0 { print("num是正数"); } else { print("num是非正数"); } ==== [4] 循环语句 ==== ===== [4.1] while 循环 ===== while condition { // 条件为 true 时重复执行 } 示例: var count = 1; while count <= 3 { print("当前计数:", count); // 输出 1,2,3 count = count + 1; } ===== [4.2] loop 无限循环 ===== loop { if stop_condition { break; // 满足条件退出 } } 示例: var i = 1; loop { print("循环次数:", i); if i >= 2 { break; } // 执行2次后退出 i = i + 1; } ==== [5] 函数定义 ==== ===== [5.1] 无参函数 ===== func func_name { // 函数体 return value; // 可省略返回 } 示例: func say_hello { print("Hello, Lamina!"); } say_hello(); ===== [5.2] 有参函数 ===== func func_name(param1, param2) { return result; } 示例: func add(a, b) { return a + b; } var sum = add(3, 5); print("3 + 5 =", sum); ==== [6] 匿名函数 ==== var func_var = do |param1, param2| { return result; }; var multi_line_func = do |param1, param2| { // 函数体 return result; }; var simple_func = |param1, param2| expression; 示例: var multiply = do |x, y| { return x * y; }; print("4 * 6 =", multiply(4, 6)); var add = |a, b| a + b; print("1 + 33 =", add(1, 33)); ==== [7] 结构体声明 ==== var struct_name = { key1 = value1; key2 = value2; }; 示例: var student = { name = "Tom"; age = 15; scores = [90, 85, 92]; }; ==== [8] 结构体成员访问 ==== 注意:暂时无法直接设置成员,可使用 setattr(struct, name, val) 模板: struct_name.key; // 访问结构体的指定成员 示例: var student = { name = "Tom"; age = 15; }; print("学生姓名:", student.name); // 输出 "学生姓名:Tom" print("学生年龄:", student.age); // 输出 "学生年龄:15" ==== [9] 模块引入 ==== 模板: include "module_path"; // 引入模块,自动补全 .lm 扩展名 示例: include "math_utils"; // 引入数学工具模块 include "lib/vectors"; // 引入向量计算模块(相对路径) var root = math::sqrt(2); // 通过命名空间访问模块函数 ==== [10] 续行符 ==== 模板: var long_expression = expression1 + expression2 + \ expression3 + expression4; // \ 用于拆分长表达式 示例: var total = 10 + 20 + 30 + 40 + 50; // 等价于 var total = 10+20+30+40+50; print("总和:", total); // 输出 "总和:150"