Skip to content

基础语法

本章节将详细介绍VLineLang的基本语法规则。

TIP

你可以使用 import "packageName" 来导入自定义模块。VLineLang具有完整的模块系统,支持多级目录和优先级导入。

变量和常量

变量声明

VLineLang使用动态类型系统,变量无需显式声明类型:

vline
// 数字
x = 10        /* 整数 */
y = 3.14      /* 浮点数 */

// 字符串
name = "VLine"

// 列表
numbers = [1, 2, 3, 4, 5]

常量声明

使用const关键字声明常量:

vline
const PI = 3.14159
const MAX_VALUE = 100

数据类型

数字

VLineLang支持整数和浮点数:

vline
// 整数运算
x = 10 + 20   /* 加法 */
y = 20 - 10   /* 减法 */
z = 10 * 20   /* 乘法 */
w = 20 / 10   /* 除法 */

// 浮点数运算
a = 3.14 * 2  /* 浮点数乘法 */
b = 5.0 / 2   /* 浮点数除法 */

// 数学函数
floor_result = floor(-3.7)  /* 输出-3 */
ceil_result = ceil(-3.7)    /* 输出-2 */

字符串

字符串支持基本操作和转义序列:

vline
// 字符串连接
first = "Hello"
second = "World"
greeting = "first" + ","  + "second"

// 转义序列
text = "这是第一行\n这是第二行"  /* \n表示换行 */
path = "C:\\Program Files"      /* \\表示反斜杠 */

列表

列表是动态数组,支持多种操作:

vline
// 创建列表
numbers = [1, 2, 3]

// 访问元素
first = numbers[0]      /* 获取第一个元素 */
last = numbers[len(numbers)-1]  /* 获取最后一个元素 */

// 修改元素
numbers[0] = 10         /* 修改第一个元素 */

// 列表操作
import "StdList"  /* 导入列表标准库,需要确保运行目录有此文件 */

numbers = new List()  /* 创建空列表 */

// numbers = new List(3)  /* 创建大小为3的列表,所有初始元素元素为0 */
// numbers = new List(3, 1)  /* 创建大小为3的列表,所有初始元素元素为1 */

numbers.append(4)       /* 添加元素 */
numbers.erase(0, 1)        /* 删除指定位置 [start,end) 的元素 */
numbers.insert(0, 1)    /* 在指定位置插入元素 */
print(numbers.size())  /* 输出列表大小 */
print(numbers.empty())  /* 检查列表是否为空 */

运算符

算术运算符

vline
a = 10
b = 3

sum = a + b      /* 加法 */
diff = a - b     /* 减法 */
prod = a * b     /* 乘法 */
quot = a / b     /* 除法 */
rem = a % b      /* 取余 */
pow = a ^ b      /* 幂运算 */

比较运算符

vline
x = 10
y = 20

less = x < y           /* 小于 */
greater = x > y        /* 大于 */
equal = x == y         /* 等于 */
not_equal = x != y     /* 不等于 */
less_eq = x <= y       /* 小于等于 */
greater_eq = x >= y    /* 大于等于 */

逻辑运算符

vline
a = true
b = false

and_result = a and b   /* 逻辑与 */
or_result = a or b     /* 逻辑或 */
not_result = not a     /* 逻辑非 */

位运算符

分别支持按位与(&)、按位或(|)、按位取反(~):

vline
print(2|1)  // 输出3
print(2&1)  // 输出0
print(~2)   // 输出-3

WARNING

位运算符会将大数转换成64位有符号整数,可能会导致精度损失。

注释

VLineLang支持两种注释方式:

vline
// 这是一个单行注释

x = 10  // 这是行末注释

/* 这是一个多行注释
   可以跨越多行 */

类型转换

VLineLang提供了基本的类型转换函数:

vline
// 字符串转数字
x = number(10)

// 数字转字符串
s = str(42)

// 创建列表
l = list("hello")

程序退出

使用exit函数退出程序,必须指定返回值:

vline
exit(0)    // 正常退出,返回值为0
exit(1)    // 异常退出,返回值为1

编译和运行

VLineLang使用vlc.exe作为编译器,基于CMake/GCC/ISO C++17构建,具有良好的跨平台特性:

bash
vlc source.vl

最佳实践

  1. 命名规范

    • 使用有意义的变量名
    • 常量使用大写字母
    • 函数名使用小写字母
  2. 代码格式

    • 使用适当的缩进(推荐4个空格)
    • 在运算符前后添加空格
    • 适当使用空行分隔代码块
  3. 注释

    • 为复杂的代码添加注释
    • 保持注释的简洁和准确
    • 及时更新注释以反映代码变化