标签: braces

bash命令组:为什么花括号需要分号?

在bash中对命令进行分组时,我知道括号()和花括号之间的目的不同.{}

但是为什么花括号构造在最后一个命令后需要分号,而对于括号构造,分号是可选的?

$ while false; do ( echo "Hello"; echo "Goodbye"; ); done
$ while false; do ( echo "Hello"; echo "Goodbye" ); done
$ while false; do { echo "Hello"; echo "Goodbye"; }; done
$ while false; do { echo "Hello"; echo "Goodbye" }; done
bash: syntax error near unexpected token `done'
$ 

我正在寻找一些有关为何情况的见解.我不是在寻找诸如"因为文档说的那样""因为它是按照这种方式设计"的答案.我想知道为什么它的设计是这样的.或者,如果它只是一个历史文物?

至少在以下版本的可以观察到这种情况:

  • GNU bash,版本3.00.15(1)-release(x86_64-redhat-linux-gnu)
  • GNU bash,版本3.2.48(1)-release(x86_64-apple-darwin12)
  • GNU bash,版本4.2.25(1)-release(x86_64-pc-linux-gnu)

syntax bash grouping parentheses braces

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

突出显示两个匹配的大括号到Gedit

有什么办法可以突出显示Gedit上的两个大括号吗?当你有几个大括号加入并且不清楚你指向哪个大括号时,这很烦人.

突出显示两个大括号将是一个简单的解决方案,以确切知道什么是开始和结束.

谢谢.

gedit braces

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

在QtCreator中更改大括号编码样式

我想在Qt Creator 2.7.1中更改大括号编码风格.目前,它是:

void bar(int i)
{
    static int counter = 0;
    counter += i;
}
Run Code Online (Sandbox Code Playgroud)

但是我想把它改成:

void bar(int i) {
    static int counter = 0;
    counter += i;
}
Run Code Online (Sandbox Code Playgroud)

如果我去Options -> C++ -> Edit -> Braces,我只能更改大括号的缩进.在预览文本字段中手动更改大括号的位置不会产生任何影响.

qt coding-style braces qt-creator

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

为什么java中的catch块需要括号?

在java中,如果我们只需要执行一个语句if或者for不需要括号.我们可以写:

if(condition)
  executeSingleStatement();
Run Code Online (Sandbox Code Playgroud)

要么

for(init;condition;incr)
  executeSingleStatement();
Run Code Online (Sandbox Code Playgroud)

但是在catch块的情况下为什么我们不能省略括号?为什么这不可能?

catch(Exception e)
   e.printStackTrace();
Run Code Online (Sandbox Code Playgroud)

因为在大多数情况下 我们我在catch块中只有一个语句,它e.printStackTrace()在测试或记录语句时.

java syntax catch-block braces

12
推荐指数
3
解决办法
2059
查看次数

当npm审计什么都不做的时候,如何用react-scripts v2.1.5修复npm包括号问题?

我的react客户端文件夹中的我的NPM包给了我63个低漏洞,这些漏洞主要处理版本2.1.5的react-scripts包的jest文件夹中的大括号包.NPM审核修复不起作用,我该怎么办?

我已经尝试降级到以前版本的react-scripts,通过更新package.json,删除包锁,再次运行npm install,或运行npm update braces来更新大括号,但是在2小时的摆弄后没有任何工作.我还尝试在它工作时恢复到我的Github package.json的早期版本.我相信它在我尝试下载firebase-ui后停止工作,但我认为这与更新软件包有关,因为我删除了节点模块和npm安装多次.

这就是我干净的package.json,它搞砸了.

"webpack-dev-server": "3.1.14",
"@babel/core": "*",
"axios": "*",
"body-parser": "*",
"bootstrap": "*",
"cors": "*",
"dotenv": "*",
"draft-js": "*",
"draft-js-export-html": "*",
"errorhandler": "*",
"express": "*",
"express-session": "*",
"history": "*",
"jquery": "*",
"moment": "*",
"mongoose": "*",
"morgan": "*",
"node-sass-chokidar": "*",
"npm-run-all": "*",
"path": "*",
"query-string": "*",
"react": "*",
"react-dom": "*",
"react-loadable": "*",
"react-redux": "*",
"react-router-dom": "*",
"react-router-redux": "*",
"react-scripts": "*",
"react-validation": "*",
"reactstrap": "*",
"recharts": "*",
"redux": "*",
"redux-logger": "*",
"redux-observable": "*",
"redux-thunk": "*",
"rxjs": "*",
"rxjs-compat": …
Run Code Online (Sandbox Code Playgroud)

braces npm jestjs react-scripts

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

如何在Perl中的匹配大括号之间提取字符串?

我的输入文件如下:

HEADER 
{ABC|*|DEF {GHI 0 1 0} {{Points {}}}}

{ABC|*|DEF {GHI 0 2 0} {{Points {}}}}

{ABC|*|XYZ:abc:def {GHI 0 22 0} {{Points {{F1 1.1} {F2 1.2} {F3 1.3} {F4 1.4}}}}}

{ABC|*|XYZ:ghi:jkl {JKL 0 372 0} {{Points {}}}}

{ABC|*|XYZ:mno:pqr {GHI 0 34 0} {{Points {}}}}

{
    ABC|*|XYZ:abc:pqr {GHI 0 68 0}
        {{Points {{F1 11.11} {F2 12.10} {F3 14.11} {F4 16.23}}}}
        }
TRAILER
Run Code Online (Sandbox Code Playgroud)

我想将文件解压缩到如下数组:

$array[0] = "{ABC|*|DEF {GHI 0 1 0} {{Points {}}}}"

$array[1] = "{ABC|*|DEF {GHI 0 2 0} {{Points {}}}}" …
Run Code Online (Sandbox Code Playgroud)

regex perl parsing matching braces

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

这是有效的Java代码吗?我的老师声称是,但我真的不太确定

当然他没有在这里向我们展示实际的代码,只是提到它,我发现它非常奇怪.

例如,根据他所说的这是有效的Java:

public class Person
{
    String Name;
    int Age;

    {
        //These two braces just chilling together - VALID? :O
    }
}
Run Code Online (Sandbox Code Playgroud)

java braces

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

为什么只有一个语句的方法需要大括号?

public void Finalise()
    ProcessFinalisation(true);
Run Code Online (Sandbox Code Playgroud)

不编译,但正确的版本:

public void Finalise()
{
    ProcessFinalisation(true);
}
Run Code Online (Sandbox Code Playgroud)

编译好(当然).

如果以下代码只有一行,如果我没有括号,我被允许:

if(true)
    CallMethod();
Run Code Online (Sandbox Code Playgroud)

具有以下一行的方法为什么不允许相同?有技术原因吗?

c# methods formatting braces

8
推荐指数
3
解决办法
1240
查看次数

Xcode 7:将{(大括号)位置更改为在新行上开始

我从读响应1,2,和3.我想知道如何在Xcode 7中做到这一点?我尝试下载Snippet Edit,但它似乎没有内置类方法存根的代码:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
}
Run Code Online (Sandbox Code Playgroud)

format xcode curly-braces braces xcode7

8
推荐指数
0
解决办法
652
查看次数

有效大括号 - CodeWars 挑战

代码战有一个挑战,要求您检查一串圆括号、方括号和花括号是否有效。

如果所有大括号都与正确的大括号匹配,则认为一串大括号有效。

"()"是有效的,"[(])"不是。

"(){}[]"是有效的,"[({})](]"不是。等等。

我已经能够创建一些逻辑来检查是否有正确数量的左大括号和右大括号。

尝试

function validBraces(braces) {

  let parenCount = 0;
  let squareBracketCount = 0;
  let curlyBraceCount = 0;

    for (let i =0; i < braces.length; i++) {
      let character = braces[i];
        if (character === "(") {
          parenCount -= 1;
          }
        if (character === ")") {
          parenCount += 1;
          }
        if (character === "[") {
          squareBracketCount -= 1;
          }
        if (character === "]") {
          squareBracketCount += 1; …
Run Code Online (Sandbox Code Playgroud)

javascript string curly-braces braces

8
推荐指数
2
解决办法
6492
查看次数