faml
Home
入门示例
GitHub
  • 简体中文
  • English
Home
入门示例
GitHub
  • 简体中文
  • English
  • 前言
  • 入门示例
  • 结构和类型
  • 表达式
  • 方法
  • 高级用法

结构和类型

注释

注释使用类似编译语言的注释:

// 单行注释
/* 多行注释 */

基本结构

基本结构的写法近似于yaml,但注意标识符类似编程语言,只能为下划线、字母或数字的组合,且只允许下划线或字母开头。

单个对象配置

使用方括号 [] 定义单个对象:

[group]
field = 123

对应的JSON结构:

{
  "group": { "field": 123 }
}

对象数组配置

使用双方括号 [[]] 定义对象数组:

[[groups]]
field1 = 111

[[groups]]
field2 = 111

对应的JSON结构:

{
  "groups": [
    { "field1": 111 },
    { "field2": 111 }
  ]
}

核心特性

条件判断

使用@if指令可以根据条件控制字段是否生效:

[group]
value = 12

@if value == 12
conditional_field = "this field is active"

@if value != 12
inactive_field = "this field is not active"

当 value 等于 12 时,生成的JSON结构:

{
  "group": {
    "value": 12,
    "conditional_field": "this field is active"
  }
}

引用其他配置项

可以直接引用同一配置文件中的其他字段:

[group]
base_value = 10
derived_value = base_value + 5  // 15

对应的JSON结构:

{
  "group": {
    "base_value": 10,
    "derived_value": 15
  }
}

数据类型

数据类型相对于yaml有极大扩展:

基本类型

[group]
bool_field = true
int_field = 123
float_field = 123.456
str_field = "hello world"

对应的JSON结构:

{
  "group": {
    "bool_field": true,
    "int_field": 123,
    "float_field": 123.456,
    "str_field": "hello world"
  }
}

复杂类型

[group]
// 数组类型
array_field = [1, 2, 3, 4, 5]

// 映射类型
map_field = { foo: "bar", baz: 123 }

对应的JSON结构:

{
  "group": {
    "array_field": [ 1, 2, 3, 4, 5 ],
    "map_field": { "baz": 123, "foo": "bar" }
  }
}

特殊类型

[group]
// 量化数字类型,实际值为数字类型
quantified_float_field = 123.456 KB

// 持续时间类型
duration_field = 123.456 seconds

// 距离类型
distance_field = 123.456 meters

对应的JSON结构:

{
  "group": {
    "quantified_float_field": 126418.944,
    "duration_field": "2.0576 mins",
    "distance_field": "123.456 meters"
  }
}

量化数字类型单位

支持以下单位:

  • KB (千字节)
  • MB (兆字节)
  • GB (吉字节)
  • TB (太字节)

持续时间类型单位

支持以下时间单位:

  • nanoseconds (纳秒)
  • microseconds (微秒)
  • milliseconds (毫秒)
  • seconds (秒)
  • mins (分钟)
  • hours (小时)
  • days (天)
  • weeks (周)
  • months (月)
  • years (年)

距离类型单位

支持以下距离单位:

  • nanometers (纳米)
  • micrometers (微米)
  • millimeters (毫米)
  • meters (米)
  • kilometers (千米)
  • megameters (兆米)
最近更新:: 2025/11/8 00:16
Contributors: fawdlstty
Prev
入门示例
Next
表达式