go如何实现多行字符串?

用 ``的话, 可以多行, 但是多行的换行符GO会修改为\n不是编译器的\r\n 这在windows中很不方便
“” 则根本不支持多行.

求问多行字符串方案.

共 7 个回复


stevewang

    str := "1" +
        "2" +
        "3"
# 0

aaaaaaaa

1楼这是串接啊, 我说的是大量多行文本, 主要是 \r\n这个换行符必须保留.

# 1

heimeil

Go的编译器支持所有换行格式的,不知道你说的是不是编辑器,很多编辑器都支持的调整换行格式,另外你非要用\r\n的话,"line1\r\nline2"这样明确的写出来就行了,也可以这样拼接多行数组:

package main

import (
    "fmt"
    "strings"
)

func main() {
    lines := []string{
        "foo",
        "bar",
        "baz",
    }
    fmt.Println(strings.Join(lines, "\r\n"))
}
# 2

yuchen16

可以这样写:

content := `
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: redis-deployment
spec:
  replicas: 1 # tells deployment to run 1 pods matching the template
  template: # create pods using pod definition in this template
    metadata:
      labels:
        app: redis
    spec:
      containers:
      - name: redis
        image: redis:3.0
        ports:
        - containerPort: 6379
        imagePullPolicy: IfNotPresent
---
kind: Service
apiVersion: v1
metadata:
  name: redis-service
spec:
  selector:
    app: redis
  ports:
    - protocol: TCP
      port: 6379
      targetPort: 6379
`
# 3

aaaaaaaa

好吧, 用 `` 然后替换 \n为\r\n

# 4

aaaaaaaa

然而本站form没有token, 点击快了多次提交.

# 5

sdvdxl

另一种方案是保存到文件中,从文件中加载,

还有一种就是提前根据文本生成对应的 byte 数组,直接当做变量使用。

# 6