这个 Python 片段的最短 ruby 等价物



我正在寻找这个 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模式的默认值为 $;$; 的默认值为 nilnil 模式的意思是"在空格上拆分",它不是 100% 等同于您拥有的(即"在单个空格字符上拆分"),但如果您可以接受这一点,那么您可以将表达式缩短为:

a, b, c, d = gets.split.map &:to_i

最新更新