问题标签 [unary-operator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 一元++优先顺序
如果int x=5;
我假设表达式y=++x * ++x;
被评估为:
首先执行++x
导致x=6
然后再次++x
导致x=7
表达式然后评估使用相同推理的y=x*x
值y=49
以下代码行
应该评估相同的值,y
但p
编译器会产生不同的答案。我可能按照优先顺序缺少一些东西。
language-agnostic - 为什么一元加号没有绝对值的含义?
在整个过程中,我看到了很多关于为什么一元加号存在于特定语言中的问题,例如:
为什么 F# 有一个一元加号运算符?
Java的一元加号运算符的目的是什么?
Ruby 中的一元加运算符有什么意义?
一元加号运算符的使用
他们都说“+”仅用于在需要时进行重载,
或者用于执行一些罕见/不必要的特定于语言的任务。
但是为什么没有任何实际用途呢?
一元“+”应该充当绝对值(至少对我而言)是有道理的,例如:
是否有任何具体原因没有这样做?
还是因为这只对我有意义?
c++ - char[] 上的一元运算符
我正在尝试定义一元运算符 - 在 char 数组上
但我收到两条错误消息
IntelliSense:非成员运算符需要类或枚举类型的参数
错误 C2803:'operator -' 必须具有至少一个类类型的形式参数
我在msdn上查找了错误代码,但我仍然看不到我做错了什么。
我想执行类似的操作
java - 与赋值融合的一元运算
令人怀疑的结果是以下代码:
期望8作为输出,因为 'i+=2' 应该更新i,但它的行为并非如此。
输出:6
我推断速记赋值运算符按预期返回4,但未在变量 i 中更新相同的值。任何解释将不胜感激。
java - ++i+i++ 评估
由于这个帖子,混乱上升了。作者更新了帖子,结果一目了然。 结论:Java从左到右计算表达式
关闭!
由于表达式的评估是从右到左完成的,因此以下代码应存储5
在j
:
但是我得到6作为输出,这迫使我重新思考从右到左的评估思路。请在这里解释这个理论。
c++ - 调车场表达式解析器中的一元减号
这是我使用分流码算法的表达式解析器,除了在一种情况下,它可以正常工作,除非在一种情况下,当我在 -2*3 中使用一元减号时它不起作用(我认为它不应该,因为我在算法中没有找到任何东西处理这个)有没有一种简单的方法可以解决这个问题?(这是一个简单的解析器,我只需要 () + - * / ^ )问候 Pedram
sql - 类似 SQL 的命令在 Oracle 中失败
我有以下代码,我想比较两个字符串(varchars)。
如果 item.item_name 在任何地方包含字符串设备类型,我希望它返回记录。
但是我收到了一个错误,在上面的命令中说明了 INVALID NUMBER('%' + equipment_type + '%')。
我意识到问题是将通配符字符串添加到变量设备类型。有谁知道如何让这个通配符比较起作用?
c - 一元减法和浮点数转换的组合
考虑以下 C 语句:
我希望一元减项产生一个等于 ULONG_MAX 的无符号长整型值,并且 a 和 b 分别设置为 ULONG_MAX 的单精度和双精度表示。
这是我在 32 位 Linux 上使用 gcc 4.4.7 以及在 64 位 Linux 上使用 Intel 和 PGI 编译器获得的结果。然而,在 64 位 Linux 上使用 gcc(测试版本 4.4.7、4.7.2 和 4.8.0,均带有 -O0 和 -O2),双精度变量 b 具有预期值,但浮点 a 变为等于 -1反而。
相比之下,以下语句将在我测试的所有编译器和系统上将 a 和 b 设置为 ULONG_MAX 的浮点表示:
如果我使用 unsigned int 而不是 unsigned long,我也会在所有系统上得到预期的结果。
这是某种未定义的行为还是编译器错误?
c# - c# 中预期的过度一元运算符
当我提到
它给出了 c# 中预期的错误一元运算符。
所以当它提到给 extern 并且 android 中的默认值是 '\u0000'
debugging - 一元运算符“-”后缺少表达式。在行:1 字符:2
我在 PowerShell 2.0 中遇到了一个特殊问题。我不是 PS 方面的专家,但偶尔会编写/编辑一些脚本来使用 Nagios 监控工具。请求 Nagios 专家的帮助。您的帮助将不胜感激。
脚本 ExServiceAlert10.ps1 嵌入在下面:
如果我像这样在 PowerShell 中直接执行该脚本,则该脚本工作正常并且没有显示错误:
但是当我通过 cmd 或从 Nagios NSClient++ 执行它时,它会显示错误,如下所示:
正常命令提示执行:(脚本放在 D:) D:>echo .\ExServiceAlert10.ps1 ; 退出 $LastExitCode | powershell.exe - 命令 -
从 nagios NSclient++ 通过 check_nrpe 执行:(脚本放置在 NSclient 脚本目录)
我得到的错误是:
我在 PowerShell 2.0 中执行这个脚本,并在过去一周尝试了各种调试方法来解决这个问题,但没有成功。
这是我的 NSClient++ conf 中的一些条目。其他 PS 脚本的文件 NSC.ini 可以正常工作,没有任何问题。
即使报告的错误脚本(ExServiceAlert10.ps1)在我的测试系统中运行良好,命令提示符中有额外的破折号,但在任何 Prod 中都不起作用。系统。所有PS版本都是2.0。
我认为要么我必须在那些错误的 Prod 上启用/禁用一些 PS 环境设置。系统,或转义脚本中的某些内容(怀疑换行符 - `n 反引号 n)。我不明白为什么它报告 Line:1 和 char:2,这不过是脚本中的注释行。
我已经看到其他几个人报告了这个特殊错误,并且在将他们的 PS 升级到 Ver 2.0 后他们的问题得到了解决。我的已经是2.0了,不知道接下来要做什么。
NSC.ini 文件:
如果这里需要任何进一步的信息,请告诉我。先感谢您。