Questions tagged «operators»

运算符是几乎所有编程和编码语言中都会出现的符号,用于对数据执行计算和比较。

8
“和”和“或”如何与非布尔值一起使用?
我正在尝试学习python,并遇到了一些不错的代码,虽然简短但并不完全有意义 上下文是: def fn(*args): return len(args) and max(args)-min(args) 我知道它在做什么,但是python为什么要这样做-即返回值而不是True / False? 10 and 7-2 返回5。同样,将和更改为或将导致功能更改。所以 10 or 7 - 2 将返回10。 这是合法/可靠的风格,还是有任何陷阱?

6
“ x不在y”或“ x不在y”
在测试成员资格时,我们可以使用: x not in y 或者: not x in y 取决于x和,此表达式可能有许多可能的上下文y。例如,它可能用于子字符串检查,列表成员资格,字典键存在。 两种形式总是相等的吗? 有首选的语法吗?

6
C中的代字号运算符
我已经看到了ELF哈希算法中使用的波浪号运算符,并且很好奇它的作用。(代码来自“永恒困惑”。) unsigned elf_hash ( void *key, int len ) { unsigned char *p = key; unsigned h = 0, g; int i; for ( i = 0; i < len; i++ ) { h = ( h << 4 ) + p[i]; g = h & 0xf0000000L; if ( g …
95 c++  c  operators 

13
!!〜(不是波浪线/爆炸波浪线)如何改变“包含/包含” Array方法调用的结果?
如果您在此处的jQuery inArray页面上阅读了注释,则会有一个有趣的声明: !!~jQuery.inArray(elm, arr) 现在,我相信双感叹号会将结果转换为type boolean,其值为true。我不明白的是,~在所有这些中,tilde()运算符的用途是什么? var arr = ["one", "two", "three"]; if (jQuery.inArray("one", arr) > -1) { alert("Found"); } 重构if语句: if (!!~jQuery.inArray("one", arr)) { alert("Found"); } 分解: jQuery.inArray("one", arr) // 0 ~jQuery.inArray("one", arr) // -1 (why?) !~jQuery.inArray("one", arr) // false !!~jQuery.inArray("one", arr) // true 我还注意到,如果将波浪号放在前面,结果是-2。 ~!!~jQuery.inArray("one", arr) // -2 …


8
Javascript:运算符重载
我已经使用JavaScript了几天,现在我想为定义的对象重载运算符。 在Google搜索了一段时间后,您似乎无法正式执行此操作,但仍有一些人声称采取了一些漫长的方法来执行此操作。 基本上,我制作了Vector2类,并希望能够执行以下操作: var x = new Vector2(10,10); var y = new Vector2(10,10); x += y; //This does not result in x being a vector with 20,20 as its x & y values. 相反,我必须这样做: var x = new Vector2(10,10); var y = new Vector2(10,10); x = x.add(y); //This results in …

6
MySQL“ IN”运算符在(大)数量值上的性能
我最近一直在使用Redis和MongoDB进行实验,似乎经常会在MongoDB或Redis中存储ID数组。因为我要询问MySQL IN运算符,所以我会坚持使用Redis 。 我想知道在IN运算符中列出大量(300-3000)id的性能如何,看起来像这样: SELECT id, name, price FROM products WHERE id IN (1, 2, 3, 4, ...... 3000) 想象一下简单的产品和类别表,您通常可以将它们结合在一起以从某个类别中获得产品。在上面的示例中,您可以看到在Redis()中的给定类别下,我返回了ID为4的类别中的所有产品ID,并将其放置在运算符内的上述查询中。category:4:product_idsSELECTIN 这表现如何? 这是“取决于情况”的情况吗?还是有一个具体的“不可接受”,“快速”或“缓慢”,或者我应该添加LIMIT 25,还是没有帮助? SELECT id, name, price FROM products WHERE id IN (1, 2, 3, 4, ...... 3000) LIMIT 25 还是应该修剪Redis返回的产品ID的数组以将其限制为25,并且仅将25个ID添加到查询中而不是添加3000,并LIMIT从查询内部将其添加到25? SELECT id, name, price FROM products WHERE id IN …

12
空合并运算符是否有“对立”?(...用任何语言?)
空合并大致可转换为 return x, unless it is null, in which case return y 我经常需要 return null if x is null, otherwise return x.y 我可以用 return x == null ? null : x.y; 不错,但是null中间总是困扰着我-似乎是多余的。我更喜欢这样的东西return x :: x.y;,::只有在它之前的东西不在时,它后面的才被评估null。 我认为这是几乎与简洁,内联零检查的对面空聚结,那种复杂的,但我[ 近 ]一定会出现在C#中没有这样的运营商。 是否还有其他具有这种运算符的语言?如果是这样,它叫什么? (我知道我可以在C#中为它编写一个方法;我使用return NullOrValue.of(x, () => x.y);,但是如果您有更好的东西,我也想看看。)


14
有C#IN运算符吗?
在SQL中,可以使用以下语法: SELECT * FROM MY_TABLE WHERE VALUE_1 IN (1, 2, 3) C#中是否有等效项?IDE似乎将“ in”识别为关键字,但我似乎无法找到任何有关它的信息。 因此,是否可以执行以下操作: int myValue = 1; if (myValue in (1, 2, 3)) // Do something 代替 int myValue = 1; if (myValue == 1 || myValue == 2 || myValue == 3) // Do something

12
冒号(:)运算符做什么?
显然,Java中冒号以多种方式使用。有人介意解释它的作用吗? 例如这里: String cardString = ""; for (PlayingCard c : this.list) // <-- { cardString += c + "\n"; } 您将如何for-each以不同的方式编写此循环,以便不合并:?





By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.