【问题标题】:Simple Math Functions Swift简单的数学函数 Swift
【发布时间】:2015-11-10 17:17:09
【问题描述】:

我刚刚学习 Swift,最近在练习一些代码,我想在数组中找到数字的平均值。谷歌搜索后,我发现了很多不同的例子......都以不同的方式解决了这个问题。从几行代码到非常强大的功能。每个人都有不同的看法,或者不同的角度。这让我想知道:

为什么更基本的数学函数没有作为原生函数内置?或者,为什么没有大多数人用来实现这一目标的流行库? (有的话请指点一下)

诚然,我只有几种语言的经验,因此我不知道这种情况有多普遍,或者不是。或者就此而言,是否有充分的理由(可能有)。

但根据我的经验,我从来不需要为 avg() 或 sum() 编写函数。我不是说这很难。它不是。但是花时间写这样的东西对我来说似乎效率很低。在 C#(例如)中,您只需要包含 LINQ 命名空间,它可以让您访问 Average() 扩展方法。在 Python 中,您可以导入“统计”模块并使用 mean()。在 PHP 中,您至少可以在本地获得一个 array_sum() 函数,从而使平均值的计算变得相当轻松。

这只是在谈论 sum() 和 avg()。其他相当简单的数学函数,比如 min()、max() 甚至是 median() 呢?是每个人都在迭代他们的数组,还是使用 reduce()(这样做会使代码的可读性大大降低)。

我的问题很简单......我错过了什么吗?还是所有 swift 开发人员都只是自己编写?这对我来说似乎效率很低。

【问题讨论】:

  • 要查看所有数学函数,例如在操场上输入sqrt(16.0),然后按cmd-单击符号

标签: arrays swift math


【解决方案1】:

minmax 存在于 Swift 中。如果您有数组,请使用minElementmaxElement

let i = min(2,1,3)
let i2 = [2,1,3].minElement()

C 中存在许多其他数学函数,例如根、幂和对数、舍入和三角函数,而这些在 Swift 中直接可用,因此重新创建它们没有意义。

let x = sqrt(2.0)

要对数组求和,请使用reduce

let sum = [2,1,3].reduce(0, combine:+)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-07-23
  • 2010-12-27
  • 1970-01-01
  • 2012-09-15
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
  • 2013-01-30
相关资源
最近更新 更多