热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

使用注入方法找到最长的单词

如何解决《使用注入方法找到最长的单词》经验,为你挑选了1个好方法。

找到最长的单词.

lOngest= %w{cat sheep bear}.inject do |memo, word|
  memo.length > word.length ? memo : word
end

我猜这memo将从值开始,"cat"因为inject没有收到任何参数.我也猜测第一个值word将是sheep,然后是wordbear.

我没有关注块及其语法中发生的事情.如果有人可以详细说明,我将不胜感激.



1> Sagar Pandya..:

所以我猜这个备忘录将以值cat开始,因为inject没有传递给它的参数.

文件说:

如果没有为memo显式指定初始值,那么集合的第一个元素将用作memo的初始值.

我还猜测第一个单词将是绵羊......然后下一个单词,熊.

您可以使用puts检查每个阶段栏的最终赋值,但这只是inject方法的返回值:

lOngest= %w{ cat sheep bear }.inject do |memo, word|
  puts "memo is currently #{memo}", 
       "word is currently #{word}",
       "-----------------------"
  memo.length > word.length ? memo : word
end

#memo is currently cat
#word is currently sheep
#-----------------------
#memo is currently sheep
#word is currently bear
#-----------------------

longest #=> "sheep"

其他方式

最后,另一种更加Rubyish的方法来获得最长的词:

%w{ cat sheep bear }.max_by(&:length) #=> "sheep"


推荐阅读
author-avatar
Because_of_you龙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有