我无法理解为什么word没有资本化或升级.
class Book
attr_accessor :title
def title=(changed_title)
changed_title.split(" ").map!{|word|
word.to_s.capitalize
}.join(" ")
@title = changed_title
end
end
book = Book.new
book.title = "check"
puts book.title
# >> check
Run Code Online (Sandbox Code Playgroud)
split(' ')生成一个临时数组.map!改变那个数组.然后它就消失了(因为它没有分配给任何东西).
changed_title保持原始状态("check"),它没有变异.
这是一个修复:
class Book
attr_reader :title
def title=(changed_title)
@title = changed_title.split(" ").map(&:capitalize).join(" ")
end
end
book = Book.new
book.title = "check"
puts book.title
# >> Check
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |