需要一个红宝石块解释[重复]

Posted

技术标签:

【中文标题】需要一个红宝石块解释[重复]【英文标题】:Need a ruby block explained [duplicate] 【发布时间】:2015-06-06 20:40:32 【问题描述】:

我想知道是否有人可以向我解释一下

? w : w.大写

block 表示在:

def titlieze(title) stop_words = %w(and in the of a an) title.capitalize.split.map|w| stop_words.include?(w) ? w : w.capitalize.join(' ') end

非常感谢任何帮助...提前谢谢您。

【问题讨论】:

这个post解释了这个三元运算符 【参考方案1】:

那里是ternary operator。这个:

stop_words.include?(w) ? w : w.capitalize

意思相同:

if stop_words.include?(w)
  w
else
  w.capitalize
end

【讨论】:

非常感谢@Tiago 又一个精彩的解释!!【参考方案2】:

通常在英语语法中,如果我们将句子中每个单词的首字母大写,那么我们将这些单词保留为小写字母

单词:and, in, the, of, a, an

所以在 ruby​​ 的 titlieze 方法中,它只是确保忽略给定句子中的这些单词。所以下面的特定条件只是一个 IF ELSE 而不是别的

stop_words.include?(w) ? w : w.大写

这意味着如果 w (被处理的单词) 存在于忽略单词 stop_words (and, in, the, of, a, an) 的数组中,那么就让它小写,否则将单词的第一个字母大写.

【讨论】:

很好的答案,非常感谢。【参考方案3】:

这是Ternary Operator。

对于title 中的每个单词w,如果w 包含在stop_words 中,则返回w 否则大写w 并将其返回给映射器。

【讨论】:

以上是关于需要一个红宝石块解释[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何覆盖红宝石块中的节点属性值/使用红宝石块中的变量值?

红宝石块内的赛璐珞异步不起作用

POJ 3258 River Hopscotch (最大最小距离)二分

石材切割--动态规划

石材切割的动态规划算法

有啥用!登录一些红宝石方法[重复]