完成Ruby Hash koan的概念后,这个概念仍然有点模糊,因此我想进一步探讨它。 当我在项目上工作时,我学得最好,所以我依赖于哈希中存储的数据来构建东西。
当然,哈希是将键与值配对的数据存储方法。 当您调用某个键时,它将显示其各自的值。 很容易,对吧?
- 克里蒂卡| Um Limite EntreNós
- 〜#hD !!〜奥斯卡奖2019在线
- 最喜欢的方式不止一种。
- 2017年奥斯卡奖池预测
- 沃伦·比蒂(Warren Beatty)和弗雷德·伯格(Fred Berger)可能是我们中的任何一个
我在Tic Tac Toe应用程序中使用了数组,但从未使用过哈希算法,因此我决定构建一种简单的方法,以便您每年都可以扔掉,并找出哪部电影将奥斯卡奖带给了最佳照片(下一次我会选择一些东西)列表较小…)。 该程序如下所示:
……很多对以后(完整代码在这里)
一旦我在奥斯卡哈希表中填写了一些值,我便开始着手逻辑。 我最终使用案例来区分用户答案。 该计划会询问您是否想知道给定的获胜者,并询问您一年。 如果它不存在(或不是数字),程序将通过以下行捕获它:
如果是有效年份(有趣的事实:Best Picture最初被称为Best Production,并于1927/28首次授予),它将搜索匹配的值并将其嵌入响应中。 然后,您可以要求其他答案或继续前进。
我在玩哈希时学到了什么
由于哈希属于Array类,因此可以使用Enumerable方法。 我已经知道.nil吗? 捕获不良用户输入的方法,但是我不知道如何在哈希中搜索现有值。 我查看了Enumerable列表,发现.detect最终效果很好。 我最初尝试过.exist吗? 但是事实证明那不是有效的方法。
我还了解到,当您有许多键/值对时,最好将每个键/值对放在新的一行。 最初,我只是将它们一个接一个地放在同一行上,很快就变得混乱了。 幸运的是,修复方法很简单,例如以大括号开头,将所有对放在随后的行上,然后在最后一对之后的行上放入另一个大括号。 它在源代码中看起来仍然很长,但是我不确定是否可以将其包装得更小。
我仍然需要学习什么
我尝试为该应用程序构建一个规范套件,以确保它朝着正确的方向发展,但是由于某些原因,我无法在不调用方法的情况下弄清楚构建测试的语言。 OscarHasher类没有任何方法,因为它仅具有一个功能。 我敢肯定,这是一个简单的修复程序,当我找出答案时,我将更新这篇文章。