Typescript 并不是所有的代码路径都返回值,但它们似乎都返回值
我试图迭代我创建的自定义类的数组,但它告诉我并非所有代码路径都返回值。在Java中,最确定的是所有路径都返回一个值Typescript 并不是所有的代码路径都返回值,但它们似乎都返回值,typescript,for-loop,Typescript,For Loop,我试图迭代我创建的自定义类的数组,但它告诉我并非所有代码路径都返回值。在Java中,最确定的是所有路径都返回一个值 function PointLiesWithinAtleast1Polygon(point: CLLocationCoordinate2D, polygons: Array<GMSPath>){ polygons.forEach(polygon =>{ if(GMSGeometryContainsLocation(point, polygon)){
function PointLiesWithinAtleast1Polygon(point: CLLocationCoordinate2D, polygons: Array<GMSPath>){
polygons.forEach(polygon =>{
if(GMSGeometryContainsLocation(point, polygon)){
return true;
}
});
return false;
}
函数点位于最短的1个多边形(点:CLLocationCoordinate2D,多边形:数组){
多边形。forEach(多边形=>{
if(GMSGeometryContainesLocation(点、多边形)){
返回true;
}
});
返回false;
}
迭代多边形数组,如果满足条件,则返回true,函数结束。如果不满足条件,则循环中断并返回false。为什么它说不是所有的代码路径都返回一个值呢?方法
PointLiesWithinAtleast1Polygon
总是返回false
。当您执行时,返回true
在lambda函数中,退出lambda并返回PointLiesWithinAtleast1Polygon
函数
Java版本
函数点位于最短的1个多边形(点:CLLocationCoordinate2D,多边形:数组){
用于(GMSPath多边形:多边形)
{
if(!GMSGeometryContainesLocation(点、多边形)){
返回false;
}
}
返回true;
}
正如您在评论中所说,您可以在匿名函数之外定义一个布尔值,也可以使用普通for loop
并检查是否符合条件
在Typescript中,您可以使用Array
的every
方法检查每个对象是否具有特定的条件
函数点位于最短的1个多边形(点:CLLocationCoordinate2D,多边形:数组){
返回多边形。每个((多边形:GMSPath)=>{
返回GMSGeometryContainesLocation(点、多边形);
});
}
该方法点为最小1多边形
始终返回false
。当您执行时,返回true
在lambda函数中,退出lambda并返回PointLiesWithinAtleast1Polygon
函数
Java版本
函数点位于最短的1个多边形(点:CLLocationCoordinate2D,多边形:数组){
用于(GMSPath多边形:多边形)
{
if(!GMSGeometryContainesLocation(点、多边形)){
返回false;
}
}
返回true;
}
正如您在评论中所说,您可以在匿名函数之外定义一个布尔值,也可以使用普通for loop
并检查是否符合条件
在Typescript中,您可以使用Array
的every
方法检查每个对象是否具有特定的条件
函数点位于最短的1个多边形(点:CLLocationCoordinate2D,多边形:数组){
返回多边形。每个((多边形:GMSPath)=>{
返回GMSGeometryContainesLocation(点、多边形);
});
}
该方法PointLiesWithinAtleast1Polygon
始终返回false
。当您执行时,返回true
在lambda函数中,退出lambda并返回PointLiesWithinAtleast1Polygon
函数。@Marco,我需要在匿名函数之外定义一个bool。谢谢您可以使用常规for in循环而不是forEach lambda。方法PointLiesWithinAtleast1Polygon
始终返回false
。当您执行时,返回true
在lambda函数中,退出lambda并返回PointLiesWithinAtleast1Polygon
函数。@Marco,我需要在匿名函数之外定义一个bool。谢谢您可以使用常规for in循环而不是forEach lambda。在我接受您的答案之前,我必须指出typescript不允许for循环使用这种语法。这看起来更像Java。糟糕的是,我还没有检查你问题的标签。我更新了我的答案,加入了一个typescript的例子。如果有人有同样的问题,但在Java中,我不会删除Java的示例。在typescript中有数组的每一个方法,它将完全执行您想要的操作;)谢谢我不知道每一个功能。我在这里一直学到新东西。谢谢在我接受你的答案之前,我必须指出typescript不允许for循环使用这种语法。这看起来更像Java。糟糕的是,我还没有检查你问题的标签。我更新了我的答案,加入了一个typescript的例子。如果有人有同样的问题,但在Java中,我不会删除Java的示例。在typescript中有数组的每一个方法,它将完全执行您想要的操作;)谢谢我不知道每一个功能。我在这里一直学到新东西。谢谢