方法

GLibVariantlookup_value

自 2.28 以来

声明 [src]

GVariant*
g_variant_lookup_value (
  GVariant* dictionary,
  const gchar* key,
  const GVariantType* expected_type
)

描述 [src]

在GVariant字典中查找值。

此函数与类型为a{s}(同样适用于类型a{o},但在这里我们只讨论字符串案例以便于理解)的字典一起使用。

如果字典的类型为a{sv},则expected_type字符串指定了期望在变体内部找到的值类型。如果变体内值具有不同类型,则返回NULL。如果字典的值类型不是v,则expected_type必须直接匹配值类型,并用于直接解包值或出现错误。

在任一情况下,如果key在字典中未找到,则返回NULL。

如果找到了键,并且值具有正确的类型,则返回它。如果指定了expected_type,则所有非NULL返回值都将具有此类型。

此功能目前使用线性扫描实现。如果您打算进行很多查找,那么使用 GVariantDict 可能会更高效。

支持从:2.28 开始

参数

key

类型: const gchar*

在字典中查找的键。

数据由方法调用者拥有。
值是一个以 NUL 结尾的 UTF-8 字符串。
expected_type

类型: GVariantType

GVariantType,或 NULL

参数可以是 NULL
数据由方法调用者拥有。

返回值

类型: GVariant

字典键的值,或 NULL

方法的调用者将获得返回数据的所有权,并负责释放它。