标签: not-operator

JavaScript中有"! - "做什么?

我有这段代码(取自这个问题):

var walk = function(dir, done) {
    var results = [];

    fs.readdir(dir, function(err, list) {
        if (err)
            return done(err);

        var pending = list.length;

        if (!pending) 
            return done(null, results);

        list.forEach(function(file) {
            file = path.resolve(dir, file);
            fs.stat(file, function(err, stat) {
                if (stat && stat.isDirectory()) {
                    walk(file, function(err, res) {
                        results = results.concat(res);

                        if (!--pending)
                            done(null, results);
                    });
                } else {
                    results.push(file);

                    if (!--pending) 
                        done(null, results);
                }
            });
        });
    });
};
Run Code Online (Sandbox Code Playgroud)

我正在努力遵循它,我想我理解除了接近结尾的所有内容!--pending.在这种情况下,该命令的作用是什么?

编辑:我感谢所有进一步的评论,但这个问题已被多次回答.不管怎么说,还是要谢谢你!

javascript not-operator decrement prefix-operator

376
推荐指数
10
解决办法
5万
查看次数

哪个更清晰:if(!value)或if(flag == value)?

我理解这是一个主观问题,所以如果需要关闭我会道歉,但我觉得它经常足以让我想知道是否一般偏好一种形式而不是另一种形式.

显然,最好的答案是"重构代码,这样你就不需要测试虚假",但有时候没有简单的方法可以这样做,而"else"分支就是继续处理.因此,当您必须具有"if not false"构造时,这是首选标准:

不是运营商

if (!value)
Run Code Online (Sandbox Code Playgroud)

或者测试是假的

if (value == false)
Run Code Online (Sandbox Code Playgroud)

c# not-operator

55
推荐指数
7
解决办法
1万
查看次数

我应该使用`!IsGood`还是`IsGood == false`?

我一直看到像这样检查的代码

if (IsGood == false)
{
   DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

或这个

if (IsGood == true)
{
   DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

我讨厌这种语法,并始终使用以下语法.

if (IsGood)
{
   DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

要么

if (!IsGood)
{
   DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

有没有理由使用' == true'或' == false'?

这是一个可读性的东西吗?人们只是不了解布尔变量?

另外,这两者之间是否有任何性能差异?

language-agnostic boolean not-operator

46
推荐指数
12
解决办法
5296
查看次数

什么是'不'的'pythonic'

我已经看过两种方式,但哪种方式更像Pythonic?

a = [1, 2, 3]

# version 1
if not 4 in a:
    print 'is the not more pythonic?'

# version 2
if 4 not in a:
    print 'this haz more engrish'
Run Code Online (Sandbox Code Playgroud)

哪种方式被认为是更好的Python?

python if-statement not-operator

32
推荐指数
3
解决办法
3224
查看次数

数组索引中的感叹号有什么作用?

在浏览我的组织的源代码库时,我遇到了这个小宝石:

RawParameterStorage[!ParameterWorkingIdx][ParameterDataOffset] = ...
Run Code Online (Sandbox Code Playgroud)

这是有效的代码吗?(它编译)这里的感叹号是做什么的?

反转~运算符可能有意义,因为它通常与!布尔表达式中的not 运算符混淆.但是,将not !运算符强加于数组索引似乎没有逻辑意义.有什么想法吗?

c++ arrays indexing indexer not-operator

26
推荐指数
3
解决办法
3977
查看次数

为什么这个按位右移似乎不起作用?

有人可以向我解释为什么面具根本没有向右移动吗?您可以使用任何代替1的结果,结果将是相同的.

unsigned mask = ~0 >> 1;
printf("%u\n", mask);
Run Code Online (Sandbox Code Playgroud)

c bit-manipulation binary-operators bit-shift not-operator

10
推荐指数
2
解决办法
2485
查看次数

Python不等于运算符

我来自ac风格的语言,所以我很自然地使用!=不相等,但当我来到Python时,从我阅读的文档中,我了解到为此目的使用了<>运算符.

最近,我看到很多代码使用!=,所以我的问题是,如果其中一个优先于另一个,或者其中一个被弃用.

另外,我想知道它们之间是否有任何区别.

python deprecated not-operator

10
推荐指数
2
解决办法
7968
查看次数

MySQL - 不喜欢

我怎么能在mysql中检查一个值是否在另一个表中的多个字段内?

就像是

SELECT * FROM table WHERE concat('%',value,'%') NOT LIKE IN(SELECT field FROM anothertable)
Run Code Online (Sandbox Code Playgroud)

但我不认为这是对的,不是吗?

mysql not-operator in-operator sql-like

5
推荐指数
1
解决办法
6506
查看次数

在JavaScript中不加(!!)vs类型强制

除了指示显式转换之外,在JavaScript中使用double not运算符是否有任何优势?它似乎在某些时候,人们喜欢使用double来检查新API的存在,但我从来没有读过任何优势.

if(!!window.File)
    // The File API is supported.
else
    // Your browser sucks.
Run Code Online (Sandbox Code Playgroud)

我读过的一件事是它是一种简单,模糊的方式来将类型转换为boolean,但是,当在此上下文中使用时,对象将被自动强制转换为boolean,因为我们正在检查它是否已定义.

简而言之,为什么人们会在引擎的顶部进行两次布尔操作?

javascript type-conversion not-operator

5
推荐指数
1
解决办法
714
查看次数

if(!$ variablename)在PHP中做什么?

我知道这!=是"不平等",但是当你有这个时它意味着什么:

if(!$something)
Run Code Online (Sandbox Code Playgroud)

我的第一个猜测是与异常有关,但环顾谷歌并没有返回任何东西.

那这是做什么的呢?

php operators not-operator

4
推荐指数
2
解决办法
2089
查看次数