gpt4 book ai didi

ruby - 有人可以向我解释我的代码吗

转载 作者:太空宇宙 更新时间:2023-11-03 18:09:03 26 4
gpt4 key购买 nike

class Book
attr_accessor :title
def title=(book_name)
small_words = ["and", "in", "the", "of", "a", "an"]
words = book_name.split(' ')
words.each do |word|
small_words.include?(word) ? word : word.capitalize!
end
words[0].capitalize!
@title = words.join(' ')
end
end

所以我一直在学习 Ruby 并一直在做一些 Ruby 测试。这一个是将所有书名大写,除了“and”、“in”、“the”等。我了解大部分内容,除了几件事。阅读错误后,我可以看到它需要一个名为 Book 的类,所以我这样做了。为什么需要这个?然后 attr_accessor :title 最后是 @title = words.join(' ') 。我明白它们的意思,但为什么需要它们?

最佳答案

基本上假设您的输入 (book_name) 是“克苏鲁的呼唤”。

words = book_name.split(' ')

拆分为“the”、“call”、“of”、“the”、“cthulhu”的数组。

words.each do |word| 
small_words.include?(word) ? word : word.capitalize!
end

遍历数组并将所有就位的单词大写,small_words 中的单词除外。数组现在有“the”、“Call”、“of”、“the”、“Cthulhu”。

words[0].capitalize!

首字母大写。所以现在数组有“The”、“Call”、“of”、“the”、“Cthulhu”。

@title = words.join(' ')

以一个单词(克苏鲁的呼唤)加入数组并将其设置在 title -实例变量中,该变量在 Ruby 中通过类内部的 @ -syntax 引用。

attr_accessor 为标题创建一个 setter 和一个 getter,当不在类内时需要它。

x = book.title # x is now "The Call of the Cthulhu"
book.title = "New Title" # sets the title to a new String

关于ruby - 有人可以向我解释我的代码吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37866256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com