var coordinatesDouble = (Double(latitudeTextField.text!), Double(longitudeTextField.text!))

var boundingBoxLat: (Double, Double)
var boundingBoxLon: (Double, Double)

boundingBoxLat = (coordinatesDouble.0! - Constants.Flickr.SearchBBoxHalfHeight, coordinatesDouble.1! + Constants.Flickr.SearchBBoxHalfHeight)
boundingBoxLon = (coordinatesDouble.1! - Constants.Flickr.SearchBBoxHalfWidth, coordinatesDouble.1! + Constants.Flickr.SearchBBoxHalfWidth)

if min(boundingBoxLat) < -90.0 {

我正在尝试在if语句中使用min(),但出现错误:

“无法使用类型(双精度,双精度)的参数列表调用'min'”

我认为这正是该功能的目的。 我想念什么吗?

每个双精度型的方程是一个双精度型被减去或加到另一个,从而得到一个双精度型。 然后,if语句应确定元组中的最小值是否低于-90.0。

#1楼 票数:2

我想念什么吗?

是。

请检查以下内容: SE-0029从函数应用程序中删除隐式元组splat行为

在包含此SE-0029的Swift版本中,Swift不接受两个成员的元组作为带有两个参数的函数的实际参数。

min还有另一个重载,但是在这里无关紧要。)

正如JAL所说,您需要传递两个参数来调用min(_:_:)

min(boundingBoxLat.0, boundingBoxLat.1)

一些补充。

我想知道这行是否真的是您想要的:

boundingBoxLat = (coordinatesDouble.0! - Constants.Flickr.SearchBBoxHalfHeight, coordinatesDouble.1! + Constants.Flickr.SearchBBoxHalfHeight)

应该是这样,不是吗? (请查找后半部分的细微差别。):

boundingBoxLat = (coordinatesDouble.0! - Constants.Flickr.SearchBBoxHalfHeight, coordinatesDouble.0! + Constants.Flickr.SearchBBoxHalfHeight)

但是,我的猜测是否正确并不重要。 只有您应该知道,过多使用元组的这种代码不太可读。

我建议您定义自己的结构来表示boundingBox

struct CoordinateBox {
    var minLatitude: Double
    var maxLatitude: Double
    var minLongitude: Double
    var maxLongitude: Double

    init(latitude: Double, longitude: Double, height: Double, width: Double) {
        assert(height > 0.0)
        assert(width > 0.0)
        minLatitude = latitude - height
        maxLatitude = latitude + height
        minLongitude = longitude - width
        maxLongitude = longitude + width
    }
}

let boundingBox = CoordinateBox(latitude: Double(latitudeTextField.text ?? "") ?? 0,
                                longitude: Double(longitudeTextField.text ?? "") ?? 0,
                                height: Constants.Flickr.SearchBBoxHalfHeight,
                                width: Constants.Flickr.SearchBBoxHalfWidth)

if boundingBox.minLatitude < -90.0 {
    //...
}

您将不会与.0 s和.1 s混淆。

#2楼 票数:0

元组可以将不同的数据类型混合在一起。 如果所有数据类型都相同,则应使用数组。

  ask by Pigpocket translate from so

未解决问题?本站智能推荐:

1回复

从列表对象双精度类型中查找最大单元格索引和值

我有以下代码在一个对象中生成4个列表(每个列表包含24个单元格): 列表中的每一个都是double类型。 创建完列表后,我想找到d.TotalCost的最大值和最小值。 最终目标是找到min和max行索引,以便我可以在数据网格中为这些行着色。 谢谢。
1回复

找到min但是零

如何在双精度数组中找到最小的正(非零)数? 例如,如果数组包含0.04 , 0.0001和0.0 ,我想回到0.0001 。 下面的功能很好,但它会以min为单位返回零,这不是我感兴趣的。 我如何让它忽略零?
3回复

Python:获取元组列表中的最小整数

我目前的计划是确定哪个是使用.curselection()突出显示的多个Tkinter列表.curselection()的第一个条目,并将所有生成的元组组合到一个列表中,产生以下结果: 我想知道如何确定最低整数。 使用.min(tupleList)只返回() ,是列表中的最低条目,但我正在
3回复

元组对,使用python找到最小值

我想找到按给定列排序的元组列表的最小值。 例如,我将一些数据排列为 2 元组列表。 如何仅通过比较元组中的第二个数字来找到数据集的最小值? IE 分钟(数据)= (5, 0.01) min( data )返回(1, 7.57) ,我接受它对于索引 0 的最小值是正确的,但我想要索引 1 的最小值
3回复

元组列表中的最小值和最大值

我有一个元组列表,我试图获取每个索引的最小值和最大值。 索引 1 似乎工作正常。 但是,对于索引 2,我期望值是 (-2,11),但我得到的是 (5, 5)。 谁能解释一下出了什么问题? 谢谢你。test_list = [(-2, 5), (-1, 5), (0, 6), (0, 7), (0, 7
1回复

在元组字典中搜索多个最小值

我有一个2元素元组作为值的字典: 如何找到x值最小的键? 如果存在重复的x值,则需要元组具有最小y值的键。 范例1: 范例2:
1回复

使用Swift查找双精度数

我整理了一个使用Cramer规则的应用程序,以针对三个变量系统优化解决方案。 它的效果很好,但是在某些情况下,返回的答案太大而无法放入答案位置。 必须有一种简单的方法来计算双精度数的长度,然后限制它,我似乎找不到它。 上面的代码显示了计算点的函数的末尾,这实际上不是必需的。 因此,总
4回复

如何过滤一组(int,str)元组,只返回第一个元素中带有最小值的元组?

假设我有一组表示带有“得分”的URL的元组: {(0.75, 'http://www.foo.com'), (0.33, 'http://www.bar.com'), (0.5, 'http://www.foo.com'), (0.66, 'http://www.bar.com')} 。