idea黄色三角感叹号啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了idea黄色三角感叹号啥意思相关的知识,希望对你有一定的参考价值。

参考技术A 黄色三角标志,中间一个感叹号,这个指示灯是驱动力,也就是地面附着力 控制系统 指示灯。此灯具有两个功能:此灯亮起来提醒您关闭驱动力控制系统; 如果在驱动力系统启动时此灯亮起并始终亮着,便表明TCS有毛病。

函数调用前的感叹号是啥意思?

【中文标题】函数调用前的感叹号是啥意思?【英文标题】:What does the exclamation mark mean before a function call?函数调用前的感叹号是什么意思? 【发布时间】:2020-11-24 21:53:04 【问题描述】:

我在关注 Flutter 的 PR 时遇到了这段代码:

if (chunkCallback != null) 
  chunkCallback!(0, 100);

chunkCallback后面的感叹号是什么意思?我在 Google 上搜索的内容均无效。

【问题讨论】:

也可以写成chunkCallback?.call(0, 100); 谁投了反对票,如果你能解释一下,那会更有帮助,因为我可以改进我的问题。谢谢! 是的@lrn,这实际上是在 PR 中提出的,但我的问题是关于“!”。不过感谢您的建议! if 语句不是已经将 chunkCallback 的类型更改为在花括号内不可为空吗? 【参考方案1】:

"!" 是一个新的 dart 运算符,用于将 nullable 类型转换为 non-nullable 类型。 阅读 here 和 here 了解声音空值安全性。

仅在您绝对确定该值永远不会为 null 并且不要将其与 conditional property access 运算符混淆时才使用它。

【讨论】:

如果方法为 null 并且我使用“!”调用它运营商,应用程序可能会崩溃。有没有办法安全地调用这个方法? @JAHelia 是的,检查可能包含该方法的变量是否不等于 null 正如@user13315601 的回答中提到的,您在谷歌上搜索的术语是“null-assertion-operator”【参考方案2】:

chunkCallback 是对函数的可为空引用。

如果您确定 chunkCallback 在运行时不能为空,您可以通过添加 ! 来“消除可空性”以使编译器满意

typedef WebOnlyImageCodecChunkCallback = void Function(
    int cumulativeBytesLoaded, int expectedTotalBytes);

...

class Class1 
  final WebOnlyImageCodecChunkCallback? chunkCallback;

  Class1(this.chunkCallback);

  void test() 
    if (chunkCallback == null) 
      throw Exception("chunkCallback is null");
    

    chunkCallback!.call(0, 100);
  

本质上,! 在这种情况下是一个语法糖

(chunkCallback as WebOnlyImageCodecChunkCallback).call(0, 100);

【讨论】:

终于有了一个理智、简洁、易懂的描述。【参考方案3】:

我认为这是“消除可空性”的简写语法,根据文档:https://dart.dev/null-safety/understanding-null-safety#null-assertion-operator

【讨论】:

以上是关于idea黄色三角感叹号啥意思的主要内容,如果未能解决你的问题,请参考以下文章

电脑设备管理器里有黄色感叹号是啥意思?

CPU前有黄色惊叹号是啥意思

在设备管理器中处理器出现黄色感叹号是啥意思啊

设备管理器里面cpu显示黄色叹号是啥意思

前锋热水器h5面板上面显示三角里面有叹号是啥意思

EXCEL文件图标上有个黄色惊叹号,是啥原因?