目录

Lamina 基本类型

[1] int

说明:普通整数类型,支持正负整数的算术运算,无需显式声明类型。

示例:

var a = 42; // 正整数
var b = -10; // 负整数
var c = a + b; // c = 32(int类型)

[2] float

说明:浮点数类型,用于传统浮点运算场景,存在精度限制。

示例:

var pi_approx = 3.14; // 浮点数
var temp = -0.5; // 负浮点数

[3] rational

说明:精确有理数类型,自动以分数形式存储除法结果,避免精度丢失,支持自动化简。

示例:

var frac1 = 16/9; // 存储为16/9
var frac2 = 4/6; // 自动化简为2/3
var sum_frac = frac1 + frac2; // 精确计算,结果为34/9

[4] irrational

说明:精确无理数类型,以符号形式存储(如√、π、e),支持符号化运算与化简。

示例:

var root2 = sqrt(2); // 存储为√2
var root8 = sqrt(8); // 自动化简为2√2
var pi_val = pi(); // 存储为π
var product = root2 * root2; // 结果为2(int类型)

[5] bool

说明:布尔类型,仅包含 true(真)和 false(假)两个值,用于条件判断。

示例:

var is_pass = true;
var is_empty = false;
if is_pass {
    print("考试通过");
}

[6] string

说明:字符串类型,用双引号包裹文本内容,支持字符串相关函数操作。

示例:

var greeting = "Hello, Lamina!";
var name = "Alice";

[7] null

说明:空值类型,仅表示 null 一个值,用于表示变量未赋值或无返回值。

示例:

var empty_var = null;
func no_return() {
    print("无返回值");
    return null; // 显式返回空值
}

[8] bigint

说明:任意精度大整数类型,需显式声明,支持超大整数(如阶乘、大数值运算)。

示例:

bigint large_num = 999999999999999; // 超大整数
bigint fact_30 = 30!; // 30的阶乘(大整数结果)

[9] array

说明:数组类型,用方括号包裹元素,支持索引访问和数组相关函数。

示例:

var scores = [90, 85, 92]; // 一维数组
var names = ["Tom", "Alice", "Bob"]; // 字符串数组

[10] matrix

说明:矩阵类型,用嵌套数组表示(二维数组),支持矩阵行列式、乘法等运算。

示例:

var mat2x2 = [[1, 2], [3, 4]]; // 2x2矩阵
var mat3x1 = [[1], [2], [3]]; // 3x1列矩阵

[11] struct

说明:结构体类型,用大括号包裹键值对,支持自定义成员和成员访问。

示例:

var person = {
    name = "Bob";
    age = 20;
    is_student = true;
};

[12] lambda

说明:匿名函数类型,用于表示未命名的函数,可赋值给变量或作为参数传递。

示例:

var subtract = do |a, b| { return a - b; }; // lambda类型变量

[13] module

说明:模块类型,通过 include 引入,包含模块内定义的函数、变量,支持 :: 命名空间访问。

示例:

include "math_utils"; // 引入模块,module类型
var result = math_utils::advanced_calc(10); // 访问模块函数