gpt4 book ai didi

ruby-on-rails - 这个 C# 到 Ruby 的最干净的端口是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 17:40:31 25 4
gpt4 key购买 nike

我正在将一个逗号分隔的字符串解析为一个数组。在 C# 中,我有:

var someArray = someString.Split(
new char[] { ',' },
StringSplitOptions.RemoveEmptyEntries);

foreach (var something in someArray)
{
SomeList.Add(something.Trim().ToLower());
}

这是目前为止我在 Ruby 中使用 Rails .blank 的结果?

some_array = some_string.split(',').each { |something| something.strip.downcase }
some_array.delete_if { |something| something.blank? }

有没有更简洁的方法来做到这一点?

最佳答案

some_string.split(',').map(&:strip).map(&:downcase).reject(&:empty?)

这会创建三个中间数组,并遍历所有这三个数组,但我通常不会担心这一点,除非您可以通过性能分析实际证明这是一个严重的瓶颈。

否则你必须做类似的事情

some_string.split(',').inject([]) {|ary, str|
ary.tap { unless (str = str.strip.downcase).empty? then ary << str end }
}

旁注:我可能会更像这样编写 C# 代码:

var someList = new List<string>(
from s in someString.Split(
new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
select s.Trim().ToLower());

关于ruby-on-rails - 这个 C# 到 Ruby 的最干净的端口是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5176144/

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