gpt4 book ai didi

ruby - 在类构造函数中有参数是否可以接受?

转载 作者:数据小太阳 更新时间:2023-10-29 07:15:41 25 4
gpt4 key购买 nike

我正在编写一个 ruby​​gem,它对计算文本中的单词出现次数很有用,我选择在类构造函数中放置 3 个参数。

代码可以正常工作,但我想重构它以使其更美观。根据您的经验,作为 API 读取/维护/使用一个没有参数的构造函数和大量 setter/getter 方法的类或像这样的代码(所有参数都在构造函数中)会更容易吗?

TIA

保罗

def initialize(filename, words, hide_list)

if ! filename.nil?
@filename = filename
@occurrences = read
else
@filename = STDIN
@occurrences = feed
end

@hide_list = hide_list
@sorted = Array(occurrences).sort { |one, two| -(one[1] <=> two[1]) }
@words = words

end

最佳答案

你可以用 rails 的方式来做,在散列中给出选项:

def initialize(filename = nil, options = {})
@hide_list = options[:hide_list]
@words = options[:words]

if filename
@filename = filename
@occurrences = read
else
@filename = STDIN
@occurrences = feed
end

@sorted = Array(occurrences).sort { |one, two| -(one[1] <=> two[1]) }

end

然后你可以这样调用它:

WC.new "file.txt", :hide_list => %w(a the to), :words => %w(some words here)

或者这个:

wc = WC.new
wc.hide_list = %w(a the is)
wc.words = %w(some words here)

关于ruby - 在类构造函数中有参数是否可以接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3214049/

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