Go中的换行符 - 从Go Tour中了解此示例

时间:2017-03-17 20:27:57

标签: go

我试图从Go Tour中了解这个例子 第3行的最后一个逗号有什么意义

fmt.Println(
    pow(3, 2, 10),
    pow(3, 3, 20),
)

换行符通常如何修改go中的代码。
我知道,如果没有换行符,我可以将此声明写为

fmt.Println( pow(3, 2, 10), pow(3, 3, 20) )

它会编译。
那么,为什么换行需要额外的逗号

2 个答案:

答案 0 :(得分:2)

自动""添加;作为声明的结尾。

所以

fmt.Println(
    pow(3, 2, 10),
    pow(3, 3, 20),
)

相同
fmt.Println(
    pow(3, 2, 10),
    pow(3, 3, 20),
);

但是

fmt.Println(
    pow(3, 2, 10),
    pow(3, 3, 20)
)

相同
fmt.Println(
    pow(3, 2, 10),
    pow(3, 3, 20);
);

这是一个明显的语法错误。

答案 1 :(得分:0)

没有意义。在函数调用中允许使用尾随逗号,但FILE *fp = fopen( filename, "rb+" ); // disable buffering setbuf( fd, NULL ); // fork() here??? // loop until the desired char value is read from the file for ( ;; ) { char data; // with fread(), we need to fseek() fseek( fp, 0, SEEK_SET ); int result = fread( &data, 1, 1, fp ); if ( result != 1 ) { break; } if ( data == 'a' ) { data = 'b'; fseek( fp, 0, SEEK_SET ); fwrite( &data, 1, 1, fp ); break; } } fclose( fp ); 将删除它们。