uplus功能有用吗?

Rat*_*ert 9 matlab

这是关于MATLAB中uplus函数或其相应的运算符,一元加上的修辞问题.+

是否存在此运算符有用的情况?更好的是,是否有必要使用此操作员?

Dan*_*iel 13

没有必要,没有一元加号的语言不允许写+1.显然你也可以写,1但是在导入总是写入的数据时,+或者-它非常好.

搜索一些源代码,我发现了一个奇怪的用法 +

A=+A
Run Code Online (Sandbox Code Playgroud)

它取代了代码:

if ~isnumeric(A)
    A=double(A);
end
Run Code Online (Sandbox Code Playgroud)

它会将字符和逻辑转换为double,但所有数字数据类型都保持不变.

  • 就个人而言,我宁愿每周阅读更明确的if语句版本,而不是一个模糊的"A = + A",这会让我对它的真实含义感到困惑. (5认同)
  • 我只是用演员用来输入我的答案! (2认同)
  • C++中的*(危险)*强制转换用例:http://stackoverflow.com/a/3903114/684399 (2认同)

Cit*_*ane 7

定义新的数字类型时非常有用.

假设您定义了四元数和重载uplus:

classdef quaternion
    ...
end
Run Code Online (Sandbox Code Playgroud)

然后在你的代码中你可以写:

x = quaternion(...);
y = [+x, -x];
z = +quaternion.Inf;
t = -quaternion.Inf;
Run Code Online (Sandbox Code Playgroud)

如果不这样,则不能使用与其他数字相同的语法.

PS:对于"它是否有用"这个问题(对某些语法来说是强制性的)......好吧我找不到任何理由......但有时写'+ x'会使回读代码时更清楚.

  • 与你的答案有些相关:我有时在我的代码的评论和文档中写"+ Inf",因为我觉得它更清楚(并且很明显`Inf`不是其他东西的拼写错误). (3认同)
  • @horchler +1为+ Inf (3认同)
  • @CrazyRat:Stack Overflow哪里没有一元加?? (3认同)