相关疑难解决方法(0)

为什么总和比注入(:+)快得多?

所以我在Ruby 2.4.0中运行了一些基准并意识到了这一点

(1...1000000000000000000000000000000).sum
Run Code Online (Sandbox Code Playgroud)

立即计算,而

(1...1000000000000000000000000000000).inject(:+)
Run Code Online (Sandbox Code Playgroud)

需要很长时间,我只是中止了操作.我的印象Range#sum是别名,Range#inject(:+)但似乎不是这样.那怎么sum工作,为什么它比这快得多inject(:+)

NBEnumerable#sum(由其实现Range)的文档没有说明延迟评估或其他任何内容.

ruby

126
推荐指数
1
解决办法
8073
查看次数

得到一个数字浮点数的总和?

0.0 24.0 0.0 12.0 0.0 0.0 0.0 0.0 0.0怎么得到这些值的总和?.sum等不适用于花车

编辑:

我正在做

<% @data.each do |data| %>
    <%= data[ :values ]%>
<%end%>
Run Code Online (Sandbox Code Playgroud)

data[:values]打印 [5.0, 0.0, 0.0, 0.0, 0.0] [4.0, 0.0, 0.0, 0.0, 0.0] [1.0, 0.0, 0.0, 0.0, 0.0] ,我只希望得到每个数组的第一个值和它们一起求和得到10.0

@data打印

[{:name=>"BMW", :values=>[0.0, 0.0, 0.0, 0.0, 0.0]}, {:name=>"Asda", :values=>[32.0, 12.0, 0.0, 0.0, 0.0]}]
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-3

3
推荐指数
1
解决办法
3292
查看次数

数组的总和

问:写一个方法,sum取一个数字数组并返回数字的总和.

A:

def sum(nums)
  total = 0

  i = 0
  while i < nums.count
    total += nums[i]

    i += 1
  end

  # return total
  total
end
Run Code Online (Sandbox Code Playgroud)

没有使用的时候必须有另一种方法来解决这个问题吧?谁知道怎么样?

编辑:这不是考试或考试.这是应用学院的github上提供的练习题.他们以问题和答案为例.我只是读过那些优秀的程序员不喜欢使用的时候或者除非,所以我很好奇我是否可以学习一些东西以更好的方式解决这个问题.跟可数一样吗?(这里Ruby的Noob显然......)

此外,我会喜欢任何我应该学习的演练或方法.这个问题也不同,因为我要求使用这些数据的具体例子.

ruby

3
推荐指数
2
解决办法
2788
查看次数

Array#sum在哪里?

为什么会[].sum给出未定义的方法错误?

[5, 15, 10].sum 
# => NoMethodError: undefined method `sum' for [5, 15, 10]:Array 
Run Code Online (Sandbox Code Playgroud)

ri Array#sum退货:

Array#sum

(from gem activesupport-4.2.6) Implementation from Enumerable
------------------------------------------------------------------------------
sum(identity = 0, &block)

------------------------------------------------------------------------------

Calculates a sum from the elements.

payments.sum { |p| p.price * p.tax_rate } payments.sum(&:price)

The latter is a shortcut for:

payments.inject(0) { |sum, p| sum + p.price }

It can also calculate the sum without the use of a block.

[5, 15, 10].sum # => 30                         ## …
Run Code Online (Sandbox Code Playgroud)

ruby

3
推荐指数
1
解决办法
2099
查看次数

重构ruby方法

这是一个简单的问题......

这种方法可以重构吗?

def sum
  total = 0
  [1,2,3,4].each do |num|
    total += num
  end
  total
end
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

ruby refactoring loops

1
推荐指数
1
解决办法
264
查看次数

如何计算Ruby数组中所有值的总和

我有一个数组如下:

a = [1,2,5,8]

我想计算所有添加(或相乘)元素的值.

ruby arrays sum

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

ruby ×6

arrays ×1

loops ×1

refactoring ×1

ruby-on-rails ×1

ruby-on-rails-3 ×1

sum ×1