学英语:直观理解哈希(Hash)还得看英文——从食物谈起

引子:小朋友的提问

程序员们对哈希(Hash)应该都相当熟悉了。但是现在设想一个情境,如果有个8岁的小朋友,用萌萌的眼神看着你,问你什么是哈希呀?你要怎么解释呢?

百度百科的回答

我们先来看看百度百科怎么说:
百度百科对Hash的解释
这个答案很正式,但是很可惜,这东西圈外的大朋友看都不一定能在几分钟内搞懂,直接给小朋友看他肯定懵圈了。

英文环境下的Hash

怎么办? 我们来看看英文里这个词是什么意思。在bing的国际版本搜索Hash,联想出来的前几条就不是程序名词了,而是这些:
Hash在bing联想词条
我们看看前两个词条~

诶诶? 怎么出来的都是菜谱了?
hash brown casserole

而Hash Browns是什么呢?
Hash browns
看起来有点晕是不是? 这里是翻译:把土豆切成小块,通常再加入洋葱,之后炸至棕色,这样做成的菜。

也就是,薯饼。(当然,麦当劳的可能没加洋葱
薯饼
家庭制作的Hash Browns就只需要切成小块,然后开炸,直到两面棕黄即可~
  炸 Hash Browns
侵删 图片来源:https://www.allrecipes.com/recipe/57783/emilys-famous-hash-browns/

Hash意思的总结

介绍了这么多,我想Hash的意思就很明显了,直接用中文就是 —— 切碎(或者你喜欢当成剁碎也行)。这也表达了哈希函数最直接的作用,把一大堆对象(组成了土豆)切碎了。之后很多的工具类,就能够根据切碎后的一个个对象(土豆丝)的哈希值(可以理解为表示切下来后落在哪个位置),来进行其他操作。比如HashMap根据Hash值把对象分成不同部分来管理。

所以一开始的问题也有了答案,那么只需要告诉小朋友土豆和薯饼的故事就好~

可以看到,相比中文母语者有额外去学习理解一遍的负担,英语母语者看名字就能大致理解下用途,这也是他们学习编程的一个优势吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值