我学习 Ruby 的方式是带括号和不带括号的函数语法都是可以接受的。为什么一些 Ruby 解释器特别想要一个而不是另一个?
def foo(i)
puts "=" * i.length
puts i
puts "=" * i.length
end
foo "hello"
=begin
=====
hello
=====
=end
foo ("hello")
# sometimes ERROR
Run Code Online (Sandbox Code Playgroud) 不知道这是一个非常愚蠢的事情要问,因为我觉得它会向C syntax.But我不sure.I跨迷迷糊糊的问题发布几分钟back.The OP采用类似(int i = 0; i < n; i++),即甚至没有;经过i++.
但是虽然OP的界限显然是错误的,但我很想问一些我不知道的事情 - 以下C中的含义是什么:
(int i = 0; i < n; i++;) // Three `;` terminated statements enclosed in ()
Run Code Online (Sandbox Code Playgroud)
因为以下只是表示C中的一个语句块:
{int i = 0; i < n; i++;}
Run Code Online (Sandbox Code Playgroud)
我的意思(int i = 0,n=3; i = n; i++;) 是,在下面的虚拟程序中意味着什么:
#include<stdio.h>
int main(void)
{
(int i = 0,n=3; i = n; i++;)
}
Run Code Online (Sandbox Code Playgroud)
编辑即使是来自该原始问题的单行也会被错误带走.让我独立询问:如果我们;在一对中包含多个已终止的语句,它会怎么做 ()?如果我们在{}其中包围成为一个块,但是怎么样()?
出于某种原因,当我尝试调用toString文字数字时,它会失败:
> 5.toString()
SyntaxError: Unexpected token ILLEGAL
Run Code Online (Sandbox Code Playgroud)
所以我尝试将它放在一个变量中,它起作用了:
> var five = 5
undefined
> five.toString()
"5"
Run Code Online (Sandbox Code Playgroud)
我觉得这有点奇怪,经过一些更多的实验,我发现在括号中包含一个文字以某种方式使它工作:
> (5).toString()
"5"
Run Code Online (Sandbox Code Playgroud)
这看起来很奇怪!为什么在括号中包装文字会改变什么?为什么不起作用5.toString()?
只是你的个人喜好,你更喜欢哪个?
if filename in filesAndFoldersList:
while a != "TEST":
a = input("Input: ")
Run Code Online (Sandbox Code Playgroud)
或者
if(filename in filesAndFoldersList):
while(a != "TEST"):
a = input("Input: ")
Run Code Online (Sandbox Code Playgroud)
任何一个都有效,所以我认为这只是个人喜好。第二个更类似于 Java/C++。但是你更喜欢哪个,为什么?
我读了一段写成的代码
for (kf=0; kf<nf; kf++)
if (EPS_MOCK[kf] == 1)
for (i=0; i<nptsx; i++)
for (j=0; j<nptsz; j++)
{
x0[iv] = log(inv_Controls->epsilonBed.GetElem(j,i,kf));
iv = iv+1;
}
for (kf=0; kf<nf; kf++)
if (inv_num_packman[kf] == -1)
for (i=0; i<nzx; i++)
{
x0[iv] = log(inv_Controls->num_packman[i+kf*nzx]);
iv = iv+1;
}
else if (inv_num_packman[kf] == 1)
{
x0[iv] = log(inv_Controls->num_packman[kf*nzx]);
iv = iv+1;
}
Run Code Online (Sandbox Code Playgroud)
而预期的括号设置将是
for (kf=0; kf<nf; kf++){
if (EPS_MOCK[kf] == 1){
for (i=0; i<nptsx; i++){
for (j=0; j<nptsz; j++)
{
x0[iv] = log(inv_Controls->epsilonBed.GetElem(j,i,kf));
iv …Run Code Online (Sandbox Code Playgroud) 当光标位于括号内时,我想突出显示括号内的内容。我如何在 Vim 中做到这一点?我可以通过 Google 找到的插件仅在光标位于括号本身时突出显示匹配项,因此我无法使用它们来解决我的问题。我无法找出一个好的正则表达式来用于解释嵌套,因此语法突出显示定义似乎不是一个好方法。