AnyMath 文档

汤姆尔

汤姆。jl是一个Julia标准库,用于解析和编写https://toml.io/en/[TOML v1.0]文件。

解析TOML数据

julia> using TOML

julia> data = """
           [database]
           server = "192.168.1.1"
           ports = [ 8001, 8001, 8002 ]
       """;

julia> TOML.parse(data)
Dict{String, Any} with 1 entry:
  "database" => Dict{String, Any}("server"=>"192.168.1.1", "ports"=>[8001, 8001…

要解析文件,请使用 汤姆。[医解析器]. 如果文件有语法错误,则引发异常:

julia> using TOML

julia> TOML.parse("""
           value = 0.0.0
       """)
ERROR: TOML Parser error:
none:1:16 error: failed to parse value
      value = 0.0.0
                 ^
[...]

还有其他版本的解析函数(汤姆。[医胰脏]和 汤姆。[医胰蛋白酶]),而不是在解析器错误上抛出异常返回一个 汤姆。解析器,解析器与信息:

julia> using TOML

julia> err = TOML.tryparse("""
           value = 0.0.0
       """);

julia> err.type
ErrGenericValueError::ErrorType = 14

julia> err.line
1

julia> err.column
16

将数据导出到TOML文件

汤姆。印刷业函数用于将数据打印(或序列化)为TOML格式。

julia> using TOML

julia> data = Dict(
          "names" => ["Julia", "Julio"],
          "age" => [10, 20],
       );

julia> TOML.print(data)
names = ["Julia", "Julio"]
age = [10, 20]

julia> fname = tempname();

julia> open(fname, "w") do io
           TOML.print(io, data)
       end

julia> TOML.parsefile(fname)
Dict{String, Any} with 2 entries:
  "names" => ["Julia", "Julio"]
  "age"   => [10, 20]

键可以根据一些值进行排序

julia> using TOML

julia> TOML.print(Dict(
       "abc"  => 1,
       "ab"   => 2,
       "abcd" => 3,
       ); sorted=true, by=length)
ab = 2
abc = 1
abcd = 3

对于自定义结构体,传递一个将结构体转换为受支持类型的函数

julia> using TOML

julia> struct MyStruct
           a::Int
           b::String
       end

julia> TOML.print(Dict("foo" => MyStruct(5, "bar"))) do x
           x isa MyStruct && return [x.a, x.b]
           error("unhandled type $(typeof(x))")
       end
foo = [5, "bar"]

参考资料

parse(x::Union{AbstractString, IO})
parse(p::Parser, x::Union{AbstractString, IO})

解析字符串或流 x,并返回结果表(字典)。 扔一个 xref:stdlib/TOML.adoc#TOML.ParserError[解析器,解析器 失败时。

请参阅 汤姆。[医胰脏].

parsefile(f::AbstractString)
parsefile(p::Parser, f::AbstractString)

解析文件 f 并返回结果表(字典)。 扔一个 xref:stdlib/TOML.adoc#TOML.ParserError[解析器,解析器 失败时。

请参阅 汤姆。[医胰蛋白酶].

tryparse(x::Union{AbstractString, IO})
tryparse(p::Parser, x::Union{AbstractString, IO})

解析字符串或流 x,并返回结果表(字典)。 返回a xref:stdlib/TOML.adoc#TOML.ParserError[解析器,解析器 失败时。

tryparsefile(f::AbstractString)
tryparsefile(p::Parser, f::AbstractString)

解析文件 f 并返回结果表(字典)。 返回a xref:stdlib/TOML.adoc#TOML.ParserError[解析器,解析器 失败时。

print([to_toml::Function], io::IO [=stdout], data::AbstractDict; sorted=false, by=identity, inline_tables::IdSet{<:AbstractDict})

数据资料 作为流的TOML语法 伊俄. 如果关键字参数 已分类 被设置为 真的,根据关键字参数给出的函数对表进行排序 . 如果关键字参数 内嵌-内嵌 被给出,它应该是一组应该"内联"打印的表格。

支持以下数据类型: 摘要;摘要, [医]文摘, 抽象字符串, 整数, [医]抽象浮, 布尔, 日期。日期时间, 日期。时间, 日期。日期. 请注意,整数和浮点数需要可转换为 漂浮64Int64 分别。 对于其他数据类型,传递函数 to_托姆尔 它接受数据类型并返回支持类型的值。

Parser()

TOML的构造函数 解析器. 请注意,在大多数情况下,不需要显式创建 解析器 而是直接使用use 汤姆。[医解析器]或 汤姆。解析,解析. 但是,使用显式解析器将重用一些内部数据结构,如果解析了大量的小文件,这对性能有益。

ParserError

从返回的类型 [医胰脏]和 [医胰蛋白酶]解析失败时。 它包含(除其他外)以下字段:

* pos机,错误发生时在字符串中的位置 * ,结果至此解析成功 * 类型,一个错误类型,不同类型的错误不同