标签: parentheses

在括号中包含参数时,Ruby Kernel.raise方法会引发错误

我喜欢用括号括起来的方法参数,这是一些Pascal的怀旧之情.清理代码时,如果我找到没有它的方法参数,我会立即将它们包含在内.今天它导致我的工作代码抛出错误,虽然我的语法看起来没问题根据文档.

Kernel.raise的文档具有以下格式:

(Object) raise(exception[, string [, array]])
Run Code Online (Sandbox Code Playgroud)

这些都有效:

> raise TypeError
TypeError: TypeError

> raise (TypeError)
TypeError: TypeError

> raise "Error message"
RuntimeError: Error message

> raise ("Error message")
RuntimeError: Error message
Run Code Online (Sandbox Code Playgroud)

但是下一个抛出语法错误的封闭版本:

> raise TypeError, "Error message"
TypeError: Error message

> raise (TypeError, "Error message")
SyntaxError: unexpected ')', expecting $end
Run Code Online (Sandbox Code Playgroud)

我可以没有它,我只是想知道为什么这会以错误结束.

ruby raise parentheses

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

在Makefile中使用带括号的粘贴

paste在Makefile中使用括号时遇到问题.

我正在尝试运行的指令是:

paste -d " " <(cat file1) <(cat file2 | grep "pattern")
Run Code Online (Sandbox Code Playgroud)

如果我从控制台运行它可以正常工作,但是当它放在Makefile中时,括号会导致语法错误:

/bin/sh: -c: line 0: syntax error near unexpected token `('
Run Code Online (Sandbox Code Playgroud)

基本上我需要的是粘贴两个(或更多)文件的内容,但用grep过滤其中一些文件.

bash makefile paste parentheses

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

调用子VBScript时不能使用括号

我在VBScript中编写这段代码,这在我以前没有用过.

我写了这个:替换(strContent,st,arr(k,i),1)

它给了我一个"在调用Sub时不能使用括号"的问题.有人可以帮忙吗?

我尝试过在线搜索,但没有任何帮助.

谢谢!

vbscript parentheses

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

括号在Bash脚本中不起作用

我正在编写一个脚本,需要从目录中删除所有内容,除了两个目录,mysql和temp.

我之前问了一个问题,得到的代码在命令行中有效:

rm -rf !(mysql|temp)
Run Code Online (Sandbox Code Playgroud)

但是它在脚本中不起作用.我收到此错误"语法错误:"("意外".

我需要做的括号有什么特别之处吗?

syntax bash parentheses

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

海湾合作委员会:建议围绕比较括号的括号不能自己解决

我试图检查这是否等于零

//Address already malloc

void MyCheck (void *Address){

    if ( (long)Address & (~(sizeof(long)-1)) != 0 ){
           printf("Invalid");
    }

}
Run Code Online (Sandbox Code Playgroud)

当试图编译它给我:

Error:  suggest parentheses around comparison in operand 
         of '&' [-Werror=parentheses]
Run Code Online (Sandbox Code Playgroud)

c gcc mingw parentheses

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

批处理文件中的括号

这段代码的括号出现了奇怪的事情:

Setlocal EnableDelayedExpansion
MyFOLDER=
FOR %%B IN (c,d,e,f,g) DO (@%%B: 2>nul && set z=%%B <nul if exist %z%\
(if %MYFOLDER%==[] (echo %z%
)
)
)
Run Code Online (Sandbox Code Playgroud)

以上编译,但这不是:

Setlocal EnableDelayedExpansion
MyFOLDER=
FOR %%B IN (c,d,e,f,g) DO (@%%B: 2>nul && set z=%%B <nul if exist %z%\
(if %MYFOLDER%==[] (
echo %z%
)
)
)
Run Code Online (Sandbox Code Playgroud)

也不是这个

Setlocal EnableDelayedExpansion
MyFOLDER=
FOR %%B IN (c,d,e,f,g) DO (@%%B: 2>nul && set z=%%B <nul if exist %z%\
(if %MYFOLDER%==[]
(
echo %z%
)
)
)
Run Code Online (Sandbox Code Playgroud)

也不是"echo%z%"低于(如果是MYFOLDER)行的任何其他组合."FOR"行中有什么可疑的吗?

batch-file parentheses

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

使用括号和无括号分配变量(带通配符)

我有一个简单的天真问题,我已经弄清楚如何让我的脚本运行,但我想知道为什么它以前没有用.

我使用类似于以下语法的通配符分配变量:

var=$dir/$subj/name*text*text.nii.gz

我可以使用ls $文件调用正确的文件名,但是当我尝试用$ file替换为命令行的输入(使用FSL进行图像处理)时,我得到一个错误,说它无法找到带有通配符的文件地点.

但是,当我用括号分配变量时:

var=($dir/$subj/name*text*text.nii.gz)

它运行得很好.我假设有其他可能更好的方法来做到这一点,但我只是想知道为什么初始变量赋值不起作用,以及以这种方式分配变量的最佳方式是什么.

谢谢!

variables bash parentheses

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

如何在javascript(ES5/6)中评估括号(圆括号)

考虑以下情况,可以(作为示例)用于执行单行交换:

let a = (10,20)
console.log(a)
> 20
Run Code Online (Sandbox Code Playgroud)

执行交换的示例

let a = 1, b = 2
a = b + (b=a, 0)
console.log(a, b)
>2,1
Run Code Online (Sandbox Code Playgroud)

我习惯于看到包含函数声明的括号创建自调用函数,但我不确定在上面的情况下发生了什么.如何(10,20)或被(b=a, 0)javascript对待?它是一个返回最终值的函数,还是一个数据类型,当访问它时总会给出最后一个项或其他什么?


为了澄清,我不是在寻找有关如何执行交换的提示,而是对上述语法的解释.

javascript parentheses

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

PHP中变量括号的内容是什么?

我在旧平台上使用PHP 5.3中的ImageMagick.我偶然发现了一段代码,这些代码在变量周围使用圆括号时无效,但在删除这些括号时确实有效.变量周围的括号有什么作用?

$im = new imagick();
$im->readImageBlob($photo);
$im->setImageFormat('jpg');
$photo = ($im);
Run Code Online (Sandbox Code Playgroud)

它没有用这段代码读取图像数据,但是当我删除括号时它就这样做了.

$photo = $im;
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

php variables parentheses

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

()函数后的括号但不是函数指针?

下面是一个简单的例子,有些东西让我烦恼.此处还有一个指向在线c ++编译器的链接,这里有https://ide.geeksforgeeks.org/oxQd8FU2NV

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

template <class T>
void PrintF (const T& printInt) { cout << printInt << " "; }

template <class T>
class PrintClass {
public:
void operator()(T elem) const {
    cout << elem << " ";
}
};

int main () {
vector<int> vect;
for (int i=1; i<10; ++i) {
    vect.push_back(i);
}


for_each (vect.begin(), vect.end(), PrintClass<int>()); cout << endl;

for_each (vect.begin(), vect.end(), PrintF<int>);      cout << endl;

//  for_each (vect.begin(), vect.end(), …
Run Code Online (Sandbox Code Playgroud)

c++ templates functor parentheses template-specialization

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