可空类上的非相等运算符语法糖吗?

我正在检查Unity API文档,偶然发现了以下示例代码块:

{
  "private": true,"dependencies": {
    "backbone": "~1.4.0","dagre": "~0.8.4","graphlib": "~2.1.7","jquery": "~3.4.1","lodash": "~4.17.14","jquery-ui": "1.12.1","jointjs": "^3.1.1","svg-pan-zoom": "3.6.1","split.js": "1.3.5"
  },"devDependencies": {
    "@types/backbone": "1.4.0","@types/jquery": "3.3.31","@types/jqueryui": "^1.12.9","@types/lodash": "^4.14.146","@types/underscore": "1.8.20","typescript": "3.2.2"
  }
}

'(!target)'到底是什么意思?

我认为这是一种写文章的方式(目标!= null),但是我不太确定,因为我知道这总是错误的,因为null!= false ...我想念什么?

https://docs.unity3d.com/ScriptReference/MonoBehaviour.Reset.html

condorc 回答:可空类上的非相等运算符语法糖吗?

MonoBehavior继承自Behavior,而Component继承自Unity.Object。这与C#/。NET提供的System.Object不同。

在此类中,从Object类型到bool有一个implicit operator bool,它调用Object与其内部的内部基对象比较,并且将null作为操作数。最终将检查该对象是否仍然存在。

由于类型可以隐式转换为布尔值,因此可以在if语句中用作布尔表达式。

布尔转换返回时,您要检查的对象仍然存在。当布尔转换返回false时,您要检查的对象不再活动。

,

!target为null时target将为真

如果我们将Target更改为HAS-OBJECT,则代码在说

if(NOT HAS-OBJECT)
{ 
 SET TO AN OBJECT
}

因此,在您发布的代码中,当target为空时,!target条件为 true

本文链接:https://www.f2er.com/3121321.html

大家都在问