未初始化的哈希键的默认值

发布于 2024-10-18 13:38:15 字数 267 浏览 2 评论 0原文

就像在 Perl 中一样,如果哈希键未初始化,那么如果执行以下代码

$hash{$key} =~ $hash{$key}++

,则该特定键的值会增加到 1(因为,它首先是未定义的,然后根据上下文,这里是数字的...它采用该值到 0 ...将其增加到 1)。

我的问题是,C# 是否也遵循相同的概念?我的意思是,如果我在 C# 中执行上述代码,结果会是什么?会是1还是什么?

有什么想法吗?

谢谢, 拉胡尔

Like in Perl, if a hash key is uninitialized then if you perform the below code

$hash{$key} =~ $hash{$key}++

then the value for that particular key increases to 1 (cause, it's first undefined and then as per the context, here it's numaical ... it takes the value to 0 ... increases it to 1).

My question is, does the same concept follows in case of C# as well? I mean, if I perform the above code in c# what would be the result? Will it be 1 or what?

Any idea?

Thanks,
Rahul

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凹づ凸ル 2024-10-25 13:38:15

这段代码毫无意义。

如果您想知道哈希中是否存在该键:

if (exists $hash{$key}) { ... }

如果您想知道它是否定义了值:

if (defined $hash{$key}) { ... }

如果您想增加该值,

$hash{$key}++

事实上,您正在尝试以一种相当无意义的方式进行正则表达式匹配。

That bit of code makes no sense.

If you want to know if the key exists in the hash:

if (exists $hash{$key}) { ... }

If you want to know if it has a value defined:

if (defined $hash{$key}) { ... }

If you want to increment the value,

$hash{$key}++

As it is, you're attempting to do a regex match in a rather nonsensical way.

夜吻♂芭芘 2024-10-25 13:38:15

哎呀!!!抱歉……我明白了;实际上提到的 Perl 代码是为了检查/确认特定的“KEY”是否存在......或者类似的。

因此,在 C# 中,我只需检查“hashtable.containskey(key)”...即可解决问题。

谢谢。

OOPS!!! Sorry ... I got it; actually the Perl code mentioned is meant to check/confirm whether the particular "KEY" exist or not ... OR sort of that.

So, in C# I cna just check for "hashtable.containskey(key)" ... that will do the trick.

Thanks.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文