Into 模块概述
Into 模块提供了全面的数据类型转换功能,支持在不同数据类型之间进行转换,包括基础类型转换、时间解析、数据序列化和第三方命令输出解析等。所有转换函数都提供详细的错误处理和类型验证。
功能概览
| 功能类别 | 主要函数 | 用途 |
|---|---|---|
| 基础类型转换 | str, int, float, boolean, filesize |
基本数据类型转换 |
| 时间转换 | time |
字符串到日期时间转换 |
| 表格转换 | table |
命令输出到表格转换 |
| 序列化 | toml, json, csv |
数据序列化为不同格式 |
| 语法高亮 | highlighted |
ANSI语法高亮 |
基础类型转换函数
str <value> - 将表达式格式化为字符串
- 参数:
value(必需):Any- 要转换的值 - 返回:
String- 格式化后的字符串表示 - 示例:
Into.str(123)返回"123"
int <value> - 将浮点数或字符串转换为整数
- 参数:
value(必需):Float|String- 要转换的值 - 返回:
Integer- 转换后的整数 - 错误:无法转换时抛出错误
- 示例:
Into.int("123")返回123Into.int(3.14)返回3
float <value> - 将整数或字符串转换为浮点数
- 参数:
value(必需):Integer|String- 要转换的值 - 返回:
Float- 转换后的浮点数 - 错误:无法转换时抛出错误
- 示例:
Into.float("3.14")返回3.14Into.float(123)返回123.0
boolean <value> - 将值转换为布尔值
- 参数:
value(必需):Any- 要转换的值 - 返回:
Boolean- 转换后的布尔值 - 逻辑:使用 Lumesh 的真值判断规则
filesize <size_str> - 解析文件大小字符串为字节数
- 参数:
size_str(必需):String- 文件大小字符串(如 “1KB”, “2MB”, “3GB”) - 返回:
Integer- 对应的字节数 - 支持单位:B, KB, MB, GB, TB, PB
- 示例:
Into.filesize("1KB")返回1024Into.filesize("2.5MB")返回2621440
时间转换函数
time <datetime_str> [datetime_template] - 将字符串转换为日期时间
- 参数:
datetime_str(必需):String- 日期时间字符串datetime_template(可选):String- 日期时间格式模板
- 返回:
DateTime- 解析后的日期时间对象 - 示例:
Into.time("2023-12-25")- 解析 ISO 格式日期Into.time("25/12/2023", "%d/%m/%Y")- 使用自定义格式
表格转换函数
table [headers|header...] <command_output> - 将第三方命令输出转换为表格
- 参数:
headers(可选):List[String]|String...- 表格头部定义command_output(必需):String- 命令输出字符串
- 返回:
List[Map]- 结构化的表格数据 - 用途:解析
ps,ls,df等命令的输出为结构化数据 - 示例:
ps aux | Into.table()
ls -l | Into.table("mode", "links", "owner", "group", "size", "date", "name")
序列化函数
toml <expr> - 将 Lumesh 表达式序列化为 TOML
- 参数:
expr(必需):Any- 要序列化的表达式 - 返回:
String- TOML 格式字符串 - 支持类型:映射、列表、基础类型
- 示例:
Into.toml({"name": "Alice", "age": 30})
json <expr> - 将 Lumesh 表达式序列化为 JSON
- 参数:
expr(必需):Any- 要序列化的表达式 - 返回:
String- JSON 格式字符串 - 支持类型:映射、列表、基础类型
- 示例:
Into.json([1, 2, 3])返回"[1,2,3]"
csv <expr> - 将 Lumesh 表达式序列化为 CSV
- 参数:
expr(必需):List[Map]- 要序列化的表格数据 - 返回:
String- CSV 格式字符串 - 要求:输入必须是映射列表(表格格式)
- 示例:
[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}] | Into.csv()
高亮
highlighted <script_string> - 对脚本字符串进行语法高亮
- 参数:
script_string(必需):String- 要高亮的脚本字符串 - 返回:
String- 带高亮的字符串 - 示例:
Into.highlighted "let x = 10; print x"
# 返回带有 ANSI 颜色代码的高亮字符串
Fs.read "script.lm" | Into.highlighted() | print
# 高亮显示脚本文件内容
striped <string> - 移除所有 ANSI 转义码
- 参数:
string(必需):String- 包含 ANSI 转义码的字符串 - 返回:
String- 移除转义码后的纯文本
使用示例
基础类型转换
# 数字转换 |
文件大小转换
# 解析文件大小 |
数据序列化
# JSON 序列化 |
命令输出解析
# 解析系统命令输出 |
管道操作示例
# 数据处理管道 |
Notes
Into 模块是 Lumesh 中重要的数据转换工具,提供了类型安全的转换机制。所有转换函数都包含详细的错误处理,确保转换失败时能提供清晰的错误信息。参数类型说明中,<> 表示必需参数,[] 表示可选参数。特别注意文件大小转换支持常见的存储单位,时间转换支持多种日期格式。
多数函数已经连接到对应类型,可以通过链式调用使用,如:
"36".to_int() |