Language agnostic 使用&;及&;操作人员
同样的问题也适用于|和| | &和&&运算符的用途是什么?我能想到的唯一用途是 使用&Language agnostic 使用&;及&;操作人员,language-agnostic,operators,Language Agnostic,Operators,同样的问题也适用于|和| | &和&&运算符的用途是什么?我能想到的唯一用途是 使用& 布尔值/返回布尔值的函数的逻辑短路。通常使用&&运算符 我想不出我用过它的任何其他案例。 有人知道其他用途吗 -编辑-为了澄清,我询问的是任何语言。我看到DateTime使用“-”返回时间跨度,字符串使用“+”创建新字符串,等等。我不记得有任何自定义数据类型使用&&和&。所以我问他们(合理地)有什么用?我不知道有一个例子。非常一般的问题,我假设您使用的是Java、C#或其他类似语法。在VB中,它相当于字符串上
布尔值/返回布尔值的函数的逻辑短路。通常使用&&运算符 我想不出我用过它的任何其他案例。
有人知道其他用途吗
-编辑-为了澄清,我询问的是任何语言。我看到DateTime使用“-”返回时间跨度,字符串使用“+”创建新字符串,等等。我不记得有任何自定义数据类型使用&&和&。所以我问他们(合理地)有什么用?我不知道有一个例子。非常一般的问题,我假设您使用的是Java、C#或其他类似语法。在VB中,它相当于字符串上的+,但我认为这是另一个故事
据我所知,如果你是用C#来表达的话,你的陈述是正确的。非常一般的问题,我假设你是用Java、C#或其他类似的语法来表达的。在VB中,它相当于字符串上的+,但我认为这是另一个故事
据我所知,如果你用C#来说话,你的说法是正确的。在大多数基于C的语言中,这些运算符的含义是:
-布尔和。用于布尔表达式,如&&
语句if
-布尔或。用于布尔表达式,如| |
语句if
-按位和。用于&
和
两个操作数的位
-按位或。用于|
或
两个操作数的位
|
和&
也是条件运算符(取决于上下文)
至于您所说的
DateTime
和+
运算符,这与您提到的其他运算符及其含义无关。在大多数基于C的语言中,这些运算符的含义是:
-布尔和。用于布尔表达式,如&&
语句if
-布尔或。用于布尔表达式,如| |
语句if
-按位和。用于&
和
两个操作数的位
-按位或。用于|
或
两个操作数的位
|
和&
也是条件运算符(取决于上下文)
至于您所说的
DateTime
和+
操作符-这与您提到的其他操作符及其含义无关。如果是Javascript,请查看以下答案:
这里也有一个关于C#用法的简短讨论
Java还有一些运算符,如|=:如果是Javascript,请查看以下答案: 这里也有一个关于C#用法的简短讨论
Java还有一些运算符,例如|=:C使用&作为任何数据类型上的一元运算符来获取数据的地址 例如:
int i = 5;
cout<<&i;//print the address of i
inti=5;
coutC使用&作为任何数据类型上的一元运算符来获取数据的地址
例如:
int i = 5;
cout<<&i;//print the address of i
inti=5;
因为你之前关于这些算子的问题是关于C#,我想这个也是
通常,您希望使用条件运算符的短路版本来避免不必要的操作。如果第一个操作数的值足以确定结果,则无需计算第二个操作数
当某个条件依赖于previos条件为真时,只有短路运算符起作用,例如执行空检查和属性比较:
if (myObj != null && myObj.State == "active")
在这种情况下使用&
运算符不会阻止对第二个操作数求值,并且会导致空引用异常
如果希望始终对两个操作数求值,例如当它们有副作用时,非短路运算符非常有用:
if (DoSomeWork() & DoOtherWork())
如果第一个方法返回false,则使用&&
运算符将阻止调用第二个方法
&
和|
也是二进制运算符,但由于|
和&
运算符不是二进制运算符,因此当您将它们用作二进制运算符时,不会产生歧义。因为您之前关于这些运算符的问题是关于C的,我认为这一个也是
通常,您希望使用条件运算符的短路版本来避免不必要的操作。如果第一个操作数的值足以确定结果,则无需计算第二个操作数
当某个条件依赖于previos条件为真时,只有短路运算符起作用,例如执行空检查和属性比较:
if (myObj != null && myObj.State == "active")
在这种情况下使用&
运算符不会阻止对第二个操作数求值,并且会导致空引用异常
如果希望始终对两个操作数求值,例如当它们有副作用时,非短路运算符非常有用:
if (DoSomeWork() & DoOtherWork())
如果第一个方法返回false,则使用&&
运算符将阻止调用第二个方法
&
和|
也是二进制运算符,但由于|
和&
运算符不是二进制运算符,因此不存在二进制运算符