难道是随机的吗?
时间:2011-07-12
来源:互联网
my @key=qw/one two three/;
my @val=(1..3);
@key_val{@key}=@val;
print join $",values %key_val;
运行结果:3 1 2
我以为是: 1 2 3
可能对Perl的基础部分没有了解透切,求指点。
my @val=(1..3);
@key_val{@key}=@val;
print join $",values %key_val;
运行结果:3 1 2
我以为是: 1 2 3
可能对Perl的基础部分没有了解透切,求指点。
作者: mysqllog 发布时间: 2011-07-12
只保证 values 和 keys 是一样的,最终的顺序是由 hash 函数和 hash 的内部实现决定的。如果编译时进行相应的设置每个线程间的顺序都可能不一样
作者: zhlong8 发布时间: 2011-07-12
回复 zhlong8
还得多看小骆驼几遍
多谢 版主指点
一旦进行了键/值的 关联,这种“随机” 性就是确定了吧,也就是说就算是在多线程环境中,也不会 乱来?!
还得多看小骆驼几遍
多谢 版主指点
一旦进行了键/值的 关联,这种“随机” 性就是确定了吧,也就是说就算是在多线程环境中,也不会 乱来?!
作者: mysqllog 发布时间: 2011-07-12
hash 本来就不保证顺序。
作者: flw 发布时间: 2011-07-12
QUOTE:
回复 zhlong8
还得多看小骆驼几遍
多谢 版主指点
一旦进行了键/值的 关联,这种“随机” ...
mysqllog 发表于 2011-07-12 22:11
还得多看小骆驼几遍
多谢 版主指点
一旦进行了键/值的 关联,这种“随机” ...
mysqllog 发表于 2011-07-12 22:11
Perl 多线程并不真正共享内存,所以多线程下还是和上面说的一样线程间即使是同样的数据顺序也可能不同。因为每个线程初始化时会给 hash 函数设置一个混淆用的随机参数。
作者: zhlong8 发布时间: 2011-07-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28