函数

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 实例。

函数的调用者拥有数据的所有权,并负责释放它。