2
A
回答
5
正常Hash
强制将其所有的关键字符串:
my %a = '1' => 'foo', 2 => 'bar';
say %a.pairs.perl; # ("1" => "foo", "2" => "bar").Seq
注意的第二个关键是如何成为字符串"2"
,即使它最初被传递给哈希作为一个整数。
当你做哈希查找窗口,下标也将自动在使用前会转换为字符串:
say %a{"2"}.perl; # "bar"
say %a{2}.perl; # "bar"
注意如何标2
找到正确的元素与关键"2"
。
从整数到字符串的转换在Perl 6中定义良好,每个唯一整数产生一个唯一的字符串,所以你给出的例子很好。
如果不希望自己的哈希键转换为字符串,则可以使用在声明中{}
符号覆盖键操作:
my %b{Any} = '1' => 'foo', 2 => 'bar';
say %b.pairs.perl; # ("1" => "foo", 2 => "bar").Seq
say %b{"1"}.perl; # "foo"
say %b{1}.perl; # Any
say %b{"2"}.perl; # Any
say %b{2}.perl; # "bar"
注意如何在这种情况下,第二个键2
保持一个整数,并且使用字符串下标"2"
进行查找时找不到它,下标1
也找不到键"1"
的条目。
%b{Any}
表示“接受任何类型的钥匙,不要强迫他们”。这有时称为'object Hash',因为它可以从任何对象映射到值。
%b{Int}
意味着“只接受Int
键,并且不强制它们”。在这种情况下,如果您甚至尝试使用任何不是Int
的东西,就会得到一个错误。
相关问题
- 1. 使用整数作为散列键
- 2. 使用Ruby散列键作为参数
- 3. 使用符号作为散列键
- 4. 使用日期作为散列表键
- 5. 配对作为散列键
- 6. ClojureScript漂浮散列作为整数
- 7. SHA1在PBKDF2中作为散列函数仍然安全吗?
- 8. 传递散列键作为参数打印出散列值
- 9. 这是足够安全的,对散列
- 10. 在Ruby中使用数组作为散列键
- 11. 订单号的安全整数散列法
- 12. PHP函数error_log()是否安全使用?
- 13. 将字符类型转换为整数类型是否安全
- 14. 使用“不安全”线程函数是否安全?
- 15. 此操作是否安全?
- 16. 使用let作为返回结果的变量是否安全?
- 17. 使用SYS_GUID()作为Oracle表中唯一的ID是否安全?
- 18. 使用`$`作为C/C++中的标识符是否安全?
- 19. 使用纯文本的散列作为加密密钥安全吗?
- 20. 以字符串和整数作为键的哈希表的散列函数
- 21. 散列令牌的随机数据是否会增加安全性?
- 22. 使用散列键和值
- 23. 散列作为一个整体
- 24. 作为散列键的对象
- 25. 为什么使用()作为散列?
- 26. 将散列键转换为ruby中的整数
- 27. 在RoR中构建散列:使用对象引用还是ID作为键?
- 28. 使用PySpark整数列作为参数
- 29. 是否安全使用java来生成UUID主键?
- 30. 使用可变对象作为散列键