猿问

如何为 fmt.sprintf 拆分长行

我在 fmt.Sprintf 中有很长的一行。我如何在代码中拆分它?我不想将所有内容都放在一行中,因此代码看起来很难看。

fmt.Sprintf("a:%s, b:%s  ...... this goes really long")


慕村225694
浏览 422回答 3
3回答

沧海一幻觉

使用字符串连接在多行上构造单个字符串值: fmt.Sprintf("a:%s, b:%s " +    " ...... this goes really long",    s1, s2)本示例中的长字符串是在编译时构建的,因为字符串连接是一个常量表达式。您可以使用原始字符串文字在包含的换行符处拆分字符串:     fmt.Sprintf(`this text is on the first lineand this text is on the second line,and third`)

白衣非少年

您还可以在反引号内使用原始字符串文字,如下所示:columns := "id, name"table := "users"query := fmt.Sprintf(`    SELECT %s    FROM %s  `, columns, table)fmt.Println(query)这种方法有一些注意事项:原始字符串不解析转义序列所有空格都将被保留,因此FROM在此查询中的子句之前会有一个换行符和几个制表符。这些问题对某些人来说可能是一个挑战,空格会产生一些难看的结果字符串。但是,我更喜欢这种方法,因为它允许您将长而复杂的 SQL 查询复制并粘贴到代码之外并粘贴到其他上下文中,例如用于测试的 sql 工作表。

www说

您还可以在反引号内使用原始字符串文字,如下所示:columns := "id, name"table := "users"query := fmt.Sprintf(`    SELECT %s    FROM %s  `, columns, table)fmt.Println(query)这种方法有一些注意事项:原始字符串不解析转义序列所有空格都将被保留,因此FROM在此查询中的子句之前会有一个换行符和几个制表符。这些问题对某些人来说可能是一个挑战,空格会产生一些难看的结果字符串。但是,我更喜欢这种方法,因为它允许您将长而复杂的 SQL 查询复制并粘贴到代码之外并粘贴到其他上下文中,例如用于测试的 sql 工作表。
随时随地看视频慕课网APP

相关分类

Go
我要回答