我想知道是否有人可以向我解释
? w:w.capitalize
块意味着:
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
非常感谢任何帮助......提前谢谢。
答案 0 :(得分:1)
那里是ternary operator。这样:
stop_words.include?(w) ? w : w.capitalize
表示与:
相同if stop_words.include?(w)
w
else
w.capitalize
end
答案 1 :(得分:0)
对于w
中的每个单词title
,如果w
中包含stop_words
,则返回w
其他大写w
并将其返回给映射器。
答案 2 :(得分:0)
通常在英语语法中,如果我们在句子中填写每个单词的第一个字母,那么我们将这些单词保留为小写字母
单词:and,in,the,of,a,
因此,在ruby的titlieze方法中,它只是确保忽略给定句子中的这些单词。所以下面的特定条件只是一个IF ELSE而没有别的
stop_words.include?(w)? w:w.capitalize
这意味着如果w(正在处理的单词)存在于忽略单词stop_words(和,in,the,of,a,an)的数组中,那么只需将它放在小的情况下,否则该单词的第一个字母为upcase