函数
GLibVariantnew_parsed
声明 [源]
GVariant*
g_variant_new_parsed (
const gchar* format,
...
)
描述 [源]
解析 format
并返回结果。
format
必须是一种文本格式 GVariant
,有一个扩展:在文本中可能会有值出现的任何位置,都可以出现一个跟在 %
字符后面的 GVariant 格式字符串(根据 g_variant_new() 的规则)。在这种情况下,将从参数列表中收集与 g_variant_new() 会收集的相同的参数。
请注意,这些参数必须与在 format
中指定的它们的类型宽度匹配。这可以通过强制类型转换来实现。请参阅GVariant 变量参数文档。
考虑以下简单的例子
g_variant_new_parsed ("[('one', 1), ('two', %i), (%s, 3)]", 2, "three");
在示例中,可变参数参数被收集并填充,就像它们是原始字符串的一部分,产生以下结果
[('one', 1), ('two', 2), ('three', 3)]
此函数仅用于将 format
作为字符串字面量使用。任何解析错误都会导致调用进程失败。如果您想从不受信任的来源解析数据,请使用 g_variant_parse()。
您不能使用此函数从参数列表中直接返回、不修改的单个 GVariant
指针。即:format
不应仅为 “%*”,“%?”,“\%r” 或以 “%@” 开头的任何内容。
此函数对语言绑定不可直接使用。
参数
format
-
类型:
const gchar*
GVariant 的文本格式。
数据由函数的调用者所有。 值是一个以 NUL 结尾的 UTF-8 字符串。 ...
-
类型:
按
format
指定的参数。
返回值
类型: GVariant
一个新的浮点 GVariant
实例。
函数的调用者拥有数据的所有权,并负责释放它。 |