我有一个对象X用一种方法getY()返回一个对象Y用一种方法a(),在TypeScript中。 X.getY()!.a() 我猜是!运算符用于检查是否为空,但它具体是如何工作的呢? 答案 它被称为"非空断言运算符",它告诉编译器:x.getY()不为空。 这是一个新的 typescript 2.0 功能,您可以在什么是新的页面,内容如下: 一个新的! // Compiled with --strictNullChecks function validateEntity(e?: Entity) { // Throw exception if e is null or invalid entity } function processEntity(e?: Entity) { validateEntity(e); let s = e!.name; // Assert that e is non-null and access name } 编辑 记录此功能存在一个问题:记录非空断言运算符 (!) 来自: stackoverflow.com

'&'在C ++声明中有什么作用?

我是一个C人,我正在尝试理解一些C ++代码。我有以下功能声明: int foo(const string &myname) { cout << "called foo for: " << myname << endl; return 0; } 函数签名与等效c的不同有何不同 int foo(const char *myname) 使用之间有区别吗string *mynamevsstring &myname?有什么区别&在C ++和*在C指示指针? 相似地: const string &GetMethodName() { ... } 是什么&在这里吗?是否有一些网站解释了如何&在C vs vs c ++中使用不同吗? 答案 “&“表示一个参考,而不是指向对象的指针(在您的情况下是常数引用)。 具有诸如函数之类的功能的优点 foo(string const& myname) 超过 foo(string const* myname) 是在前一种情况下,您可以保证myName是非null的,因为C ++不允许null引用。由于您是通过引用传递的,因此不会复制对象,就像您通过指针一样。 您的第二个示例: const string &GetMethodName() { ... } 将允许您返回恒定引用,例如,成员变量。如果您不希望返回副本,并且再次保证返回的值是非记录,这将很有用。例如,以下内容允许您直接,只读的访问: class A { public: int bar() const {return someValue;} //Big, expensive to copy class } class B { public: A const& getA() { return mA;} private: A mA; } void someFunction() { B b = B(); //Access A, ability to call const functions on A //No need to check for null, since reference is guaranteed to be valid....

'和'vs'&&'作为操作员

我有一个代码库,开发人员决定使用AND和OR代替&&和||。 我知道运营商的优先级有差异(&&前面and),但是对于给定的框架(Prestashop确切地说)这显然不是原因。 您正在使用哪个版本?是and比可读性更可读&&?还是没有区别? 答案 如果您使用AND和OR,最终您会被这样的事情绊倒: $this_one = true; $that = false; $truthiness = $this_one and $that; 想猜猜什么$truthiness等于? 如果你说false… bzzzt,对不起,错了! $truthiness以上具有价值true。为什么?=有一个更高的优先级比and。添加括号以显示隐性顺序更清楚: ($truthiness = $this_one) and $that 如果您使用过&&代替and在第一个代码示例中,它将按预期工作,并且false。 如下注释中所述,这也有助于获得正确的价值,因为括号的优先级高于=: $truthiness = ($this_one and $that) 来自: stackoverflow.com

“ - >” PHP运算符称为什么?

你怎么称呼这个箭头->在PHP中发现的操作员? 它是一个负号,破折号或连字符,然后是大于标志(或右人字形)。 大声读取代码时如何发音? 答案 官方名称是"对象操作员" - t_object_operator。 来自: stackoverflow.com

“ ::”“”是什么区别。和C ++中的“ - >”

我创建了一个名为*Kwadrat* 。班级有三个int字段。我的发展环境 建议我从*Kwadrat* 通过**::** 和**->** 操作员。我尝试了两个操作员,发现**->** 操作员能够成功地访问对象字段中的数据,尽管对于该数据而言,也不能说相同**->** 操作员。我还发现**.**操作员也将访问班级成员。我很困惑,不明白为什么有三个访问对象成员和/或方法的成员。有人可以向我解释这三个操作员有什么区别? 1。-> 2。:: 3。. #include <iostream> using namespace std; class Kwadrat{ public: int val1, val2, val3; Kwadrat(int val1, int val2, int val3) { this->val1 = val1; // Working this.val2 = val2; // Doesn't Work! this::val3 = val3; // Doesn't Work! } }; int main() { Kwadrat* kwadrat = new Kwadrat(1,2,3); cout<<kwadrat->val1<<endl; cout<<kwadrat->val2<<endl; cout<<kwadrat->val3<<endl; return 0; } 答案 1。->用于访问对象成员变量和方法pointer反对 Foo *foo = new Foo(); foo->member_var = 10; foo->member_func(); 2。....

“ | =”是什么意思?(管等操作员)

我尝试使用Google搜索和堆栈溢出进行搜索,但没有显示任何结果。我已经在OpenSource库代码中看到了这一点: Notification notification = new Notification(icon, tickerText, when); notification.defaults |= Notification.DEFAULT_SOUND; notification.defaults |= Notification.DEFAULT_VIBRATE; 什么是" | ="(pipe equal operator) 意思是? 答案 |=读的方式与+=。 notification.defaults |= Notification.DEFAULT_SOUND; 是相同的 notification.defaults = notification.defaults | Notification.DEFAULT_SOUND; 在哪里|是位或操作员。 所有操作员被引用这里。 使用了一个角操作员,因为这些常数频繁地使INT可以携带标志。 如果你看在这些常数,您会发现它们具有两个: public static final int DEFAULT_SOUND = 1; public static final int DEFAULT_VIBRATE = 2; // is the same than 1<<1 or 10 in binary public static final int DEFAULT_LIGHTS = 4; // is the same than 1<<2 or 100 in binary 因此,您可以使用位或添加标志...

“:=”做什么?

我vue:=在几个代码样本中使用,但从来没有随附的解释。在不知道专有名称的情况下,不可能使用它的使用。 它有什么作用? 答案 http://en.wikipedia.org/wiki/Equals_sign 在计算机编程语言中,等号通常表示用于测试值相等的布尔运算符(例如,在 Pascal 或 Eiffel 中),这与符号在数学中的用法一致,或者表示赋值运算符(例如,在类 C 语言中) Note: 我通过搜索找到了colon equals operator 来自: stackoverflow.com

“<>”的 SQL 运算符名称是什么?

我一头雾水,谷歌没找到。Sql <>运营商名称? 答案 <>不等于,它等于!= 来自: stackoverflow.com

“||”和“||”有什么区别

C 风格运算符之间有什么区别&&,||,…以及他们的 Perl 人类可读版本"and","or",……? 看起来互联网代码两者都使用: open (FILE, $file) or die("cannot open $file"); open (FILE, $file) || die("cannot open $file"); 答案 从Perl 文档: 或者 列出运算符 在列表运算符的右侧,它的优先级非常低,因此它控制在那里找到的所有逗号分隔表达式。 逻辑或者 ,定义或者 ,以及独家的或者。 二进制"或"返回两个周围表达式的逻辑或。||,除了非常低的优先级。 print FH $data or die "Can't write to FH: $!"; 这意味着它是短路的:即,仅当左侧表达式为假时才计算右侧表达式。 $a = $b or $c; # Bug: this is wrong ($a = $b) or $c; # Really means this $a = $b || $c; # Better written this way 但是,当它是列表上下文分配并且您尝试使用"||“时...

“is”运算符对整数的行为异常

为什么以下代码在 Python 中表现异常? >>> a = 256 >>> b = 256 >>> a is b True # This is an expected result >>> a = 257 >>> b = 257 >>> a is b False # What happened here? Why is this False? >>> 257 is 257 True # Yet the literal numbers compare properly 我正在使用Python 2.5.2。 基于上述内容,我可以假设Python在内部实现为"小"整数以与大整数不同的方式存储,并且is操作员可以区分。 答案 看看这个: >>> a = 256 >>> b = 256 >>> id(a) 9987148 >>> id(b) 9987148 >>> a = 257 >>> b = 257 >>> id(a) 11662816 >>> id(b) 11662828 这是我在 Python 2 文档中找到的内容,“普通整数对象”(这对于蟒蛇3):...

“operator bool() const”是什么意思

例如: operator bool() const { return col != 0; } col是一个整数。operator bool() const工作吗? 答案 表单的成员函数 operator TypeName() 是转换运算符。TypeName当它们存在时,它们会被转换为TypeName使用转换函数。 在这种特殊情况下,operator bool()允许使用类类型的对象,就好像它是一个bool。obj,你可以用它作为 if (obj) 这将调用operator bool(),返回结果,并将结果作为条件if。 应当指出的是operator bool()是一个非常糟糕的主意,你应该永远不会使用它。“安全布尔习语。” (C 0x,即将发布的 C 标准修订版,增加了对显式转换运算符的支持。这将允许您编写安全的explicit operator bool()它可以正常工作,而无需跳过实现 Safe Bool Idiom 的麻烦。) 来自: stackoverflow.com

“和”与“和”的区别

两者有什么区别&&和andRuby 中的运算符? 答案 and是相同的&&但与较低优先级。短路评估。 警告:and甚至比=因此,您通常需要避免and。and应该在《铁轨指南》中找到"避免双重渲染错误"。 来自: stackoverflow.com

“或”和||之间的区别在Ruby?

有什么区别or和||Ruby 中的运算符? 答案 这是操作员优先级的问题。 ||比优先级高or。 因此,在两者之间,您还有其他运营商,包括三元(? :)和作业(=)因此,您选择哪一个可以影响语句的结果。 这是一个红宝石操作员优先表。 看这个问题对于另一个示例and/&&。 另外,请注意可能发生的一些讨厌的事情: a = false || true #=> true a #=> true a = false or true #=> true a #=> false 前两个陈述都评估为true,但第二组a到false自从=优先级低于||但高于or。 来自: stackoverflow.com

%%20(mod)%20解释

今天我在写一个程序在C**%** 计算一些指数…我的程序无法运行,所以我对其进行了调试,然后我意识到"%“不像我所知道的其他程序语言那样工作。 例如: 在Python中%返回这样的值: for x in xrange (-5, 6): print x, "% 5 =", x % 5 -5 % 5 = 0 -4 % 5 = 1 -3 % 5 = 2 -2 % 5 = 3 -1 % 5 = 4 0 % 5 = 0 1 % 5 = 1 2 % 5 = 2 3 % 5 = 3 4 % 5 = 4 5 % 5 = 0 在C中...

%20Python中%20%%20的%20结果%20是什么?

什么是%在计算中? 它是否能计算出百分比,例如:4 % 2显然等于0。怎么办? 答案 %20%%20(模)%20运算符%20产生%20%20余数%20从%20%20的%20除法%20的%20第一个%20参数%20乘以%20%20第二个。%20%20数字%20参数%20是%20第一个%20转换后的 取自http://docs.python.org/reference/expressions.html Example 1: 6%2评估为0因为6除以2(3次)就没有余数。 Example 2 :7%2评估为1因为还有剩余的1当 7 除以 2(3 次)时。 总而言之,它返回除法运算的余数,或者0如果没有剩余的话。6%2意思是求 6 除以 2 的余数。 来自: stackoverflow.com