未初始化的哈希键的默认值
就像在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这段代码毫无意义。
如果您想知道哈希中是否存在该键:
如果您想知道它是否定义了值:
如果您想增加该值,
$hash{$key}++
事实上,您正在尝试以一种相当无意义的方式进行正则表达式匹配。
That bit of code makes no sense.
If you want to know if the key exists in the hash:
If you want to know if it has a value defined:
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.
哎呀!!!抱歉……我明白了;实际上提到的 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.