浏览 3105 次
锁定老帖子 主题:Ruby - 条条道路通罗马
精华帖 (9) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-06-04
Ruby Quiz的题目,可以看到很多不同的ruby解法,从好玩中学到别人的想法和知识,这很棒。
Ruby语言有TMTOWTDI的味道 (There’s more than one way to do it),一些人认为这是一种不好的味道,但我觉得这很好玩,颇有条条道路通罗马意味。我翻译过一些写这篇文章的一个起因是问答频道的一个题目:ruby 怎么利用正则表达式在把一个字符串数组中的数字放到一个数组中?,我从其他人的解答中学到了一些string对象以前从来不注意的方法。 第2个原因是一篇博客:21个你应该使用的Ruby小技巧,学到了很多非常棒的小技巧,可以让代码更简练。 第3个原因还是一篇博客:Ruby TMTOWTDI, Episode 1,作者在他们的开发团队中会经常举办小比赛,出一个题目让大家用ruby来解决,然后会评选出性能最好和最优雅的2个获胜者。这篇博客的问题是: 引用 给定一个类似下面格式的字符串 "a10 b20 c25 d40" 写一段代码把它转化成hash {'a' => 10, 'b' => 20, 'c' => 25, 'd' => 40 } 从解答中可以学到很多好玩的小技巧,有兴趣的可以一看。 我觉得这种在团队中推行类似ruby quiz的方法有很多好处,在之前的Java团队我也用过: 1. 增加整个团队的互动 2. 了解他人的编码风格,以便更好的协作 3. 知识共享,把他人的知识/小技巧变成自己的 大家有兴趣的话,不妨在自己的团队中也试试看 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-06-04
看了下这几篇文章,确实很受启发。
|
|
返回顶楼 | |
发表时间:2008-06-04
我有让偶们公司的C老大们去做做某些quiz的题目,无人问津,我在上演独角戏,唉。。。
|
|
返回顶楼 | |
发表时间:2008-06-13
好处还有一点,就是代码优化,因为从‘Ruby TMTOWTDI, Episode 1’这个博文后面,还特别对不同解法进行了性能测评,以决出最后的优胜者,只有这样的比较,才会有更加精湛的技艺和高手出现,老外这点追求真还不得不佩服阿。。。
Tim的解法比较直观 Hash[*(str.scan(/(\w)(\d+)/).map {|k, v| [k, v.to_i] }.flatten)] 知识点包括regex, scan方法,map方法,flatten方法,以及*(asterisk)操作符, 见http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Method_Calls |
|
返回顶楼 | |
发表时间:2009-04-30
最后修改:2009-04-30
刚才看了一下这题:
引用 str='100good200bad300ok'
除了用scan用split也不错: str='100good200bad300ok' str.split(/\D+/) #or str.split(/[a-z]+/) =>["100", "200", "300"] |
|
返回顶楼 | |