小编nwa*_*thi的帖子

如果我用(arg,... args)定义方法,参数将反转

例如:

def m(arg, ...args) {
    println "arg: $arg"
    println "args: $args"
}

m('arg', k:'v')
Run Code Online (Sandbox Code Playgroud)

输出:

arg:['k':'v']
args:['arg']
Run Code Online (Sandbox Code Playgroud)

我认为正确的输出应该是

args:['arg']
arg:['k':'v']
Run Code Online (Sandbox Code Playgroud)

groovy

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

错误:'if'之前的预期表达式

这是我的代码,我不知道我哪里错,什么是"表达"?

#define m(smth) (if(sizeof(smth) == sizeof(int)) {printf("%d", (int) smth);} else{puts((char*)smth);})

int main(void) {
    m("smth");
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

/home/roroco/Dropbox/rbs/ro_sites/c/ex/ex2.c: In function ‘main’:
/home/roroco/Dropbox/rbs/ro_sites/c/ex/ex2.c:18:18: error: expected expression before ‘if’
 #define m(smth) (if(sizeof(smth) == sizeof(int)) {printf("%d", (int) smth);} else{puts((char*)smth);})
                  ^
/home/roroco/Dropbox/rbs/ro_sites/c/ex/ex2.c:21:5: note: in expansion of macro ‘m’
     m("smth");
     ^
make[3]: *** [ex/CMakeFiles/ex2.dir/ex2.c.o] Error 1
make[2]: *** [ex/CMakeFiles/ex2.dir/all] Error 2
make[1]: *** [ex/CMakeFiles/ex2.dir/rule] Error 2
make: *** [ex2] Error 2
Run Code Online (Sandbox Code Playgroud)

c macros syntax-error

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

标签 统计

c ×1

groovy ×1

macros ×1

syntax-error ×1