5
Tôi tự hỏi nếu có một phương pháp trong Ruby để biến một từ chẳng hạn như month
thành monthly
.Cách trả lại dạng quảng cáo của từ
Tương tự như pluralize(word)
Tôi tự hỏi nếu có một phương pháp trong Ruby để biến một từ chẳng hạn như month
thành monthly
.Cách trả lại dạng quảng cáo của từ
Tương tự như pluralize(word)
Tôi không nghĩ có bất kỳ xây dựng trong phương pháp, nhưng bạn có thể viết một đơn giản một mình:
CONSONANTS = [ 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z' ]
def adverbize(word)
if word[-2,2] == "ly"
word
elsif word.length <= 3 and word[-1] == "y"
word + "ly"
elsif word[-2,2] == "ll"
word + "y"
elsif CONSONANTS.include? word[-3] and word[-2,2] == "le"
word.sub(/e$/, "y")
elsif word[-1] == "y"
word.chop + "ily"
else
word + "ly"
end
end
Một cách khác để làm điều này, mà sẽ làm việc mỗi lần (điều này chủ yếu là một trò đùa, nhưng bạn có thể sử dụng nó nếu bạn muốn)
def adverbize(word)
"In a " + word + " fashion."
end
Tôi đã hy vọng cho một trong những xây dựng trong hầu hết các quy tắc sẽ được chăm sóc. Ngữ pháp không phải là sở trường của tôi;). – deb
'word [-1] == 'y'? word.chop + 'ily': word + 'ly'' Điều này sẽ xử lý ngoại lệ phổ biến nhất. Có những người khác, ví dụ như "le" => "ly". –
Đã chỉnh sửa cho phù hợp, @LarsHaugseth. Cảm ơn! –