我正在寻找这个 Python 片段的最短的 ruby 等价物
a, b, c, d = map(int, raw_input().split(" "))
还有比这更短的吗?
a, b, c, d = gets.split(" ").map &:to_i
没有参数,String#split
空格上拆分字符串 ( $;
):
"1 2 3 4n".split
# => ["1", "2", "3", "4"]
换句话说,您无需调用 chomp
来删除尾随换行符:
a, b, c, d = gets.split.map &:to_i
Python 的str.split
类似(无需指定参数):
>>> "1 2 3 4n".split()
['1', '2', '3', '4']
split
模式的默认值为 $;
,$;
的默认值为 nil
。nil
模式的意思是"在空格上拆分",它不是 100% 等同于您拥有的(即"在单个空格字符上拆分"),但如果您可以接受这一点,那么您可以将表达式缩短为:
a, b, c, d = gets.split.map &:to_i