标签: not-operator

NOT运算符在查询lucene中不起作用

我使用lucene版本3.0.3.0,但我搜索的一些表达式无法正常工作.例如,如果我在"模型"字段上搜索"!Fiesta OR Astra",则仅返回"vauxhallAstra"并且不返回"fordFocus".我的代码如下:

var fordFiesta = new Document();

        fordFiesta.Add(new Field("Id", "1", Field.Store.YES, Field.Index.NOT_ANALYZED));

        fordFiesta.Add(new Field("Make", "Ford", Field.Store.YES, Field.Index.ANALYZED));

        fordFiesta.Add(new Field("Model", "Fiesta", Field.Store.YES, Field.Index.ANALYZED));



        var fordFocus = new Document();

        fordFocus.Add(new Field("Id", "2", Field.Store.YES, Field.Index.NOT_ANALYZED));

        fordFocus.Add(new Field("Make", "Ford", Field.Store.YES, Field.Index.ANALYZED));

        fordFocus.Add(new Field("Model", "Focus", Field.Store.YES, Field.Index.ANALYZED));



        var vauxhallAstra = new Document();

        vauxhallAstra.Add(new Field("Id", "3", Field.Store.YES, Field.Index.NOT_ANALYZED));

        vauxhallAstra.Add(new Field("Make", "Vauxhall", Field.Store.YES, Field.Index.ANALYZED));

        vauxhallAstra.Add(new Field("Model", "Astra", Field.Store.YES, Field.Index.ANALYZED));







        Directory directory = FSDirectory.Open(new DirectoryInfo(Environment.CurrentDirectory + "\\LuceneIndex"));

        Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);





        var writer = new IndexWriter(directory, …
Run Code Online (Sandbox Code Playgroud)

lucene not-operator operator-keyword

3
推荐指数
1
解决办法
5858
查看次数

当布尔值不为真时,如何执行LESS保护?

embeddable是一个返回布尔值的自定义LESS PHP函数.

当布尔函数返回true时,我可以使用LESS(lessphp)保护执行某些操作:

.my-mixin(@url) when(embeddable(@url)) {
    background-color: #abc;
}

.smallClass {
    .my-mixin('small.png');
}
Run Code Online (Sandbox Code Playgroud)

它产生:

.smallClass {
    background-color: #abc;
}
Run Code Online (Sandbox Code Playgroud)

正如所料.

我怎么做时,是不是真的(非运营商).显而易见的:

.my-mixin(@url) when(embeddable(@url)) {
        background-color: #abc;
}

.my-mixin(@url) when(not(embeddable(@url))) {
        background-color: #389;
}

.bigClass {
        .my-mixin('big.png');
}
Run Code Online (Sandbox Code Playgroud)

静静地丢弃,以及使用它的块.注意,我保留了守卫的真实版本,所以如果谓词错误,应该使用真正的版本.然后我尝试了:

.my-mixin(@url) when(!embeddable(@url)) {
    background-color: #389;
}
Run Code Online (Sandbox Code Playgroud)

取代不是版本.

mixin只是保存在CSS中(而不是编译),并且尝试使用它的bigClass块仍然会被静默删除.

与:相同:

.my-mixin(@url) when(embeddable(@url) != true) {
        background-color: #389;
}
Run Code Online (Sandbox Code Playgroud)

css guard not-operator less

3
推荐指数
1
解决办法
4223
查看次数

重载逻辑 NOT 运算符与 bool 类型转换运算符

考虑以下代码:

class Truth
{
public:
    Truth(bool val) : value(val) {}
    bool operator!() {std::cout<<"operator!()"<<std::endl; return !value;}
    operator bool() {std::cout<<"operator bool()"<<std::endl; return value;}
private:
    bool value;
};

int main()
{
    Truth t(true);

    if(!t)
        std::cout<<"t is false"<<std::endl;
    else
        std::cout<<"t is true"<<std::endl;

    if(!!t)
        std::cout<<"t is false"<<std::endl;
    else
        std::cout<<"t is true"<<std::endl;

    if(t)
        std::cout<<"t is false"<<std::endl;
    else
        std::cout<<"t is true"<<std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在语句if(!t)if(!!t)重载的operator!()实现中被调用,而(并不奇怪)在语句if(t)中重载的operator bool()实现被调用。

但是,如果operator!()实现被注释掉,则在所有 3 个语句中operator bool()都会被调用。

我理解“为什么”会发生这种情况,但我担心的是,重载逻辑 NOT 运算符 …

c++ operator-overloading not-operator

3
推荐指数
1
解决办法
2928
查看次数

NOT 运算符可以处理括号中存在的多个条件吗?

我在 MySQL 中运行以下查询:

SELECT * FROM Customers
WHERE NOT Country='Germany' AND NOT Country='USA';
Run Code Online (Sandbox Code Playgroud)

它返回了我完全正确的预期结果。

之后我运行以下查询:

SELECT * FROM Customers
WHERE NOT (Country='Germany' AND Country='USA');
Run Code Online (Sandbox Code Playgroud)

这次它返回了表中存在的所有记录SELECT * FROM Customers;(查询的结果集)

我不明白为什么 NOT 运算符在第二个带括号的查询中不起作用?

您可以访问此链接并检查:

https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_where_not_and
Run Code Online (Sandbox Code Playgroud)

mysql sql not-operator

3
推荐指数
1
解决办法
3475
查看次数

2
推荐指数
1
解决办法
104
查看次数

!flag在java中有两个含义?

boolean flag = false;
if(!flag) System.out.println(!flag); // prints true
Run Code Online (Sandbox Code Playgroud)

我想知道为什么!flag被认为是false一个条件参数传递给if statementtrue其他地方一样?

java if-statement not-operator

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

什么意思!! 在C - 为什么需要它?

可能重复:
C++代码中的双重否定

在阅读我读到的一个代码时:

flush = ! !(flags & GST_SEEK_FLAG_FLUSH);
Run Code Online (Sandbox Code Playgroud)

我没有得到!!这里的意思.这句话怎么办?

编辑:

我得到了它的双重否定.将非bool数据转换为bool的技巧

但那有什么需要呢?这里冲洗是bool然后如果你将任何非零项目分配给bool它会将1和零项目视为0,所以这样做有什么好处?

c equation not-operator

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

'如果'声明没有返回它的意思

我只是在失明,还是这种if说法真的不符合它的意图?

Dim textSample as String = "F"
If Not textSample = "D" Or Not textSample = "E" Or Not textSample = "F" Then
    MessageBox.Show("False")
End If
Run Code Online (Sandbox Code Playgroud)

即使textSample是其中一个字母,也会显示消息框.在我看来,该if语句应该看到textSample是其中一个字母并跳过它,而如果它是Z,它将"Not"等于其中任何一个并因此显示消息框.

为什么它会进入if声明?

vb.net if-statement not-operator

0
推荐指数
1
解决办法
819
查看次数

使用列表推导将项目保留在第二个列表中

我试图使用列表推导来从列表中删除一些项目,只需保留未指定的项目.

例如,如果我有2个列表,a = [1,3,5,7,10]并且b = [2,4]我希望保留所有项目a不在与数字相对应的索引中b.

现在,我尝试使用,y = [a[x] for x not in b]但这会产生一个SyntaxError.

y = [a[x] for x in b] 工作正常,并保持我想要删除的元素.

那我该怎么做呢?另外,这是一个很好的方法,或者我应该使用del

python list-comprehension list not-operator

0
推荐指数
1
解决办法
180
查看次数

在 C 中对 long double 应用“not”运算符

我在下面的 C 代码中对 long double 变量应用了 not 运算符:

#include <stdio.h>

int main()
{
   long double a;
   signed char b;
   int arr[sizeof(!a+b)];
   printf("\n%d",sizeof(arr));
   return 0;
}

Run Code Online (Sandbox Code Playgroud)

这段代码输出 16。我无法理解当我们在 long double 上应用 not 运算符时会发生什么,就像我们对a.

请帮助我了解这段代码发生了什么。

谢谢你!

c sizeof not-operator long-double integer-promotion

0
推荐指数
1
解决办法
156
查看次数

Javascript中的运算符不会出现意外的令牌错误

!在这个条件中使用not运算符()给了我:

"未捕获的SyntaxError:意外的令牌!"

if (text.includes(input[j])) {
   $(Messages[i]).hide();
}
else if !(text.includes(input[j])) {
   $(Messages[i]).show();
}
Run Code Online (Sandbox Code Playgroud)

为什么不在!这里工作?

javascript if-statement not-operator logical-operators

-1
推荐指数
1
解决办法
404
查看次数

python不是带括号的运算符

我有一个简单的逻辑,如果if语句返回无效的语法错误。该语句是:

if (a[1] != None and a[2] != None and !(a[3] == None and a[4] == None)):
Run Code Online (Sandbox Code Playgroud)

无效的语法是第三个!操作员。有什么原因为什么这行不通?在这种情况下是否应该使用其他运算符?

因此,逻辑本质上是:(a[1] ^ a[2] ^ (a[3] v a[4])其中这些表示具有值)。因此,不获取任何None值的反向逻辑是:

!a[1] ^ !a[2] ^ !(a[3] ^ a[4])
Run Code Online (Sandbox Code Playgroud)

我很确定自己的逻辑数学是正确的,那么如何获得所需的结果?

*背景信息:Python 2.7.10,总体代码是将数据从SQL Server 2008表中提取出来,进行处理,然后将其插入不允许NULL值的另一个表中,而原始表则乱七八糟

谢谢你的帮助!

python logic brackets not-operator

-1
推荐指数
1
解决办法
792
查看次数