【问题标题】:How many one-line expressions can make an array with integers from 0 to 99? [closed]多少个单行表达式可以组成一个从 0 到 99 的整数数组? [关闭]
【发布时间】:2015-12-22 19:37:22
【问题描述】:

例如,

[0.99].to_a
# => [0, 1, 2, 3...]

我想知道有多少种不同的单线解决方案。这是我得到的数量(6):

(0..99).to_a
[*0..99]
0.upto(99).to_a
[*0.upto( 99 )]
(0..99).map {|a| a}
(0..100).step(1).to_a

【问题讨论】:

  • 这是一个相当无聊的问题,因为它没有提供一组有用的答案。很容易产生微小的变化并继续想出不同的方法来做到这一点,但大多数只是好奇或我们不应该这样做的方式的例子。相反,一个更好的问题会要求最简洁、最快或最有效的方法来做到这一点。

标签: ruby


【解决方案1】:

显而易见的...

 Array.new(100) {|i| i}
 # the same as:
 Array.new(100, &:to_i)

如果我们想对此感到愚蠢:

 Module.const_get([].class.name).new(100, &:to_i)
 eval("[1,2,3,*(4..99)]")

【讨论】:

    【解决方案2】:

    你可以这样做:

    1. (0..99).map { |a| a }
    
    2. (0..99).step(1).to_a
    
    3. (0..99).to_a
    
    4. (1..99).each { |a| a }.to_a
    

    【讨论】:

      【解决方案3】:
      1. (0..99).to_a
      2. (0..99).map{|e| e}
      3. 1.upto(99).inject([]) { |sum, e| sum << e }
      4. 1.upto(99).map { |e| e }
      5. 99.times.inject([]) { |sum, e| sum << e.next}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-24
        • 1970-01-01
        • 2023-01-11
        • 1970-01-01
        相关资源
        最近更新 更多