首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Null Check Flutter Dart的解释-这个表达式是什么意思?

Null Check Flutter Dart的解释-这个表达式是什么意思?
EN

Stack Overflow用户
提问于 2020-09-05 01:22:37
回答 2查看 50关注 0票数 0

我有一个方法来计算项目相对于另外两个引用的位置距离,这两个引用都有纬度和经度。因此,我们有三个参考点:用户家庭地址、用户当前地址和项目地址。项目地址: lat1,long1;用户家庭地址: lat2,long2用户离GPS的当前位置: lat3,long3我有一个计算距离的方法,有四个参数

代码语言:javascript
运行
复制
calculateDistance(latA, longB, lat1, long1){//NOTE - lat1 and long1 must be provided from the db but latA and longB will be either of lat2 and long2 or lat2 and long2 OR default 0.12323 and 12.2343
}

我必须遍历lat1、long1、lat2、long2,以检查以下内容:如果lat1和long1或lat2和long2为null或空,则使用default;如果lat1和long1为null/空且lat2和long2不为null/not空,则使用lat2和long2;如果lat1和long1不为null/not空且lat2和long2为null/is空,则使用lat1和。计算并将计算值传递给calculateDistance的最简单表达式是什么?Dart中的十进制和空值检查表达式是否有帮助,以及如何编写它们?请用Dart分享您的想法和表达。

EN

回答 2

Stack Overflow用户

发布于 2020-09-05 02:04:30

这就是你要的

代码语言:javascript
运行
复制
CalculateDistance(
    lat1,
    long1,
    lat3??lat2??0.12323,
    long3??long2??12.2343);

或者,您可以在传递给函数之前简单地检查它。如果它不工作,则为COmment

编辑后,现在它认为lat1和lat2不为null,如果2和3都为null,则给出默认值,如果3为null,则给出2

票数 0
EN

Stack Overflow用户

发布于 2020-09-05 03:33:45

请澄清这4个参数是字符串还是双精度。如果它们是双精度的,那么你说的空是指0.0作为值吗?你的情况也不是很清楚...它们应该是:

(lat1,long1) (lat2,long2)为null/空-使用默认值

(lat1,long1) - null/empty和(lat2,long2) - not null/empty -使用(lat2,long2)

(lat1,long1) - not null/empty AND (lat2,long2) -null/空- use (lat1,long1)

(lat1,long1) - not null/empty和(lat2,long2) - not null/empty -然后呢??使用(lat1,long1)??

我排除了lat1具有有效值,但long1为null的可能性。lat1和long1都将为null/empty,或者两者都有值。

基于此,您可以使用简单的if/else,也可以在表达式中使用如下形式...

代码语言:javascript
运行
复制
  lat1!=null ? calculateDistance(lat1, long1, latDB, longDB): lat2!=null? calculateDistance(lat2, long2, latDB, longDB): calculateDistance(0.12323, 12.2343, latDB, longDB);

在这里,我考虑到如果lat1和long1都不为空,则需要使用lat1和lat2。

然而,这样的表达式会导致代码缺乏可读性,并且没有性能提升。因此,声明一个单独的函数会更好,在这个函数中可以清楚地显示if/else语句。将值传递给它,并在其中调用calculateDistance()方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63745555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档