toml4ahk——纯ahk实现toml解析

作者: MonoEven

详情:toml4ahk

参考:toml4j

简单入门

filename := "test"
_file := fileopen(filename, "r")
_string := "a = 1"

_toml1 := Toml().read(_string)
_toml2 := Toml().read(_file)
_toml3 := Toml().read(_toml1)
_toml4 := Toml().read(filename, _type := "file")
_toml5 := Toml().read(filename, _type := "file", encoding := "utf-8")

_toml_with_defaults := Toml(_toml1).read(_file)
_toml :=  Toml().read("a = 1")
filename := "test"
_file := fileopen(filename, "rw")
_writer := StringWriter()

; 返回值永远是字符串形式。
output1 := TomlWriter().write(_toml)
output2 := TomlWriter().write(_toml, _writer)
; output2 == _writer.toString()
output3 := TomlWriter().write(_toml, _file)
; output3 == _file.read()
output4 := TomlWriter().write(_toml, filename)
; output4 == fileread(filename, "utf-8")

具体介绍

对于所有java的特定类型,例如ArrayList,Boolean,HashMap。。或者是Toml类型,都有一个便捷的转为ahk的办法,即.toahk()

在使用Toml().read()解析文件或字符串为Toml类型之后,可以使用以下函数获取特定的键所对应的值,如果不符合选定类型,或者键不存在则返回Java.Null()

getString(String)
getDate(String) ; 获取的是Date类型,有toString函数,可以直接msgbox
getBoolean(String) ; 获取的是Boolean类型,有toString函数,可以直接msgbox
getInt(String)
getLong(String)
getFloat(String)
getDouble(String)
getList(String) ; 获取的是ArrayList类型,可以用toahk转为Array类型
getTable(String) ; 返回由该键对应的HashMap创建的新的Toml类型
getTables(String) ; 返回ArrayList类型,里面装的都是Toml类型,可以循环获取

默认值

Toml在创建时可以指定默认值,这会影响使用get(key)时的返回值,具体见Github上的介绍。

测试

如果你不清楚一些使用办法,可以去test里寻找帮助,在test里有几乎所有可能的使用方法。

特殊

与大多数库不同的是,toml4ahk还提供了一种特殊的转换为绑定类的方法,即Toml类型可以使用to函数

(Toml).to(targetClass, , protoFlag)
; protoFlag影响类注册时选定的是内部还是外部,建议为false,但默认为true便于一些简单的使用

更多细节见Github的介绍。

下载地址

toml4ahk

提取码:mono复制
解压码:无

给TA捐赠
共{{data.count}}人
人已捐赠
AHKV1教程

[AHK]面向对象--Box类

2023-1-12 18:56:00

AHKV2

jieba4ahk——一个基于字典的中文分词系统

2023-1-14 23:58:07

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索