Ios 访问特定索引中的数组
我尝试访问函数中的数组,据我所知,Swift中没有ArrayList,因此我尝试使用常规列表:Ios 访问特定索引中的数组,ios,arrays,swift,xcode,swift3,Ios,Arrays,Swift,Xcode,Swift3,我尝试访问函数中的数组,据我所知,Swift中没有ArrayList,因此我尝试使用常规列表: func findNearsetPoints(pointsArray: [Point] , myPoint: Point )-> Array <Point>{ var twoPoint = [Point]() var minDist1:Double = DBL_MAX; var minDist2:Double = DBL_MAX; var dis
func findNearsetPoints(pointsArray: [Point] , myPoint: Point )-> Array <Point>{
var twoPoint = [Point]()
var minDist1:Double = DBL_MAX;
var minDist2:Double = DBL_MAX;
var distance:Double = 0
for element in pointsArray{
distance = getDistanceBetweenTwoPoints(pointsArray[element], Point); //error 0
if (distance < minDist1) {
minDist1 = distance;
twoPoint[1] = twoPoint[0];
twoPoint[0] = pointsArray[element]; // error 1
}
else if (distance < minDist2) {
minDist2 = distance;
twoPoint[1] = pointsArray[element]; //error 1
}
}
return twoPoint;
}
func getDistanceBetweenTwoPoints(point1:Point , point2:Point )->Double{
return 5; //TODO
}
func findNearsetPoints(pointsArray:[Point],myPoint:Point)->数组{
变量两点=[点]()
var minDist1:Double=DBL_MAX;
var minDist2:Double=DBL_MAX;
变量距离:双精度=0
对于pointsArray中的元素{
距离=获取两点之间的距离(点阵列[元素],点);//错误0
如果(距离Double{
返回5;//TODO
}
错误0:
/Users/user/Desktop/proj/ViewController.swift:145:38:无法使用“ViewController.Point”类型的索引为“[ViewController.Point]”类型的值下标
错误1:
/Users/user/Desktop/proj/ViewController.swift:149:38:无法使用“ViewController.Point”类型的索引为“[ViewController.Point]”类型的值下标
代码有什么问题?
谢谢 您的
元素
已经是点
而不是索引
for element in pointsArray{
distance = getDistanceBetweenTwoPoints(point1: element, point2: myPoint) // fix here
if (distance < minDist1) {
minDist1 = distance;
twoPoint[1] = twoPoint[0];
twoPoint[0] = element; // fix here
}
else if (distance < minDist2) {
minDist2 = distance;
twoPoint[1] = element; // fix here
}
}
pointsArray中元素的{
distance=GetDistanceBetween两点(point1:element,point2:myPoint)//在此处修复
如果(距离
附言:
为了更好地计算距离,也可以使用loook。只需按距离对数组排序,然后在排序后从数组中取出第一个。这更容易做到您的
元素
已经是点
而不是索引
for element in pointsArray{
distance = getDistanceBetweenTwoPoints(point1: element, point2: myPoint) // fix here
if (distance < minDist1) {
minDist1 = distance;
twoPoint[1] = twoPoint[0];
twoPoint[0] = element; // fix here
}
else if (distance < minDist2) {
minDist2 = distance;
twoPoint[1] = element; // fix here
}
}
pointsArray中元素的{
distance=GetDistanceBetween两点(point1:element,point2:myPoint)//在此处修复
如果(距离
附言:
为了更好地计算距离,也可以使用loook。只需按距离对数组排序,然后在排序后从数组中取出第一个。这更容易做到您声明了
获取两点之间的距离
作为命名参数
对于当前声明,您需要使用以下语法调用它:
getDistanceBetweenTwoPoints(point1: aPoint, point2: anotherPoint)
如果要在参数上不带标签的情况下调用它,则应按如下方式重新定义:
func getDistanceBetweenTwoPoints(
_ point1:Point ,
_ point2:Point )->Double{
return 5; //TODO
}
您将两个点之间的距离声明为使用命名参数 对于当前声明,您需要使用以下语法调用它:
getDistanceBetweenTwoPoints(point1: aPoint, point2: anotherPoint)
如果要在参数上不带标签的情况下调用它,则应按如下方式重新定义:
func getDistanceBetweenTwoPoints(
_ point1:Point ,
_ point2:Point )->Double{
return 5; //TODO
}
你想用
pointsArray.enumerated()
得到一组索引值,这是对的,但是对于他的用例,他不需要索引。你想用pointsArray.enumerated()
得到一组索引值,这是对的,但是对于他的用例,他不需要索引这是一个很大的帮助!现在,它在第一行/Users/user/Desktop/proj/PdacJobTest/ViewController中大喊大叫。swift:137:47:调用中缺少参数标签'point1:point2',那么您不应该这样称呼它:let twoints=findNearsetPoints(pointsArray:myPointsArray,myPoint:myPoint)
这是有问题的一行:distance=GetDistanceBetween两个点(元素,点);添加标签时,您需要使用标签,或使用不需要标签的\uuu
标记标签。调用它:distance=getDistanceBetweenTwoPoints(点1:element,点2:myPoint)
并将其更改为myPoint
而不是类名。注意:您不需要代码>在SWIFT的最后一行,这是一个很大的帮助!现在,它在第一行/Users/user/Desktop/proj/PdacJobTest/ViewController中大喊大叫。swift:137:47:调用中缺少参数标签'point1:point2',那么您不应该这样称呼它:let twoints=findNearsetPoints(pointsArray:myPointsArray,myPoint:myPoint)
这是有问题的一行:distance=GetDistanceBetween两个点(元素,点);添加标签时,您需要使用标签,或使用不需要标签的\uuu
标记标签。调用它:distance=getDistanceBetweenTwoPoints(点1:element,点2:myPoint)
并将其更改为myPoint
而不是类名。注意:您不需要代码>在swift中的行尾