gpt4 book ai didi

perl - 如何在 Perl 哈希中存储 null

转载 作者:行者123 更新时间:2023-12-04 23:44:31 25 4
gpt4 key购买 nike

我想在我的 C 代码 (XS) 中使用 Perl 哈希作为一个集合,所以我只需要将 key 保留在哈希中。是否可以存储诸如 null 或其他常量值之类的内容以避免创建不必要的值?

像这样的东西:

int add_value(HV *hash, SV *value)
{
// just an example of key
char key[64];
sprintf(key, "%p", value);
if (hv_exists(hash, key, strlen(key)) return 0;

// here I need something instead of ?
return hv_stores(hash, key, ?) != NULL;
}

一种可能的解决方案可能是存储值(value)本身,但也许 undef 有特殊的常量。或空。

最佳答案

&PL_sv_undef是未定义的值,但不幸的是,您不能在散列和数组中天真地使用它。报价perlguts :

通常,如果要在 AV 或 HV 中存储未定义值,则不应使用 &PL_sv_undef ,而应使用 newSV 函数创建新的未定义值,例如:

av_store( av, 42, newSV(0) );
hv_store( hv, "foo", 3, newSV(0), 0 );

关于perl - 如何在 Perl 哈希中存储 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31836990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com