Câu trả lời:
Theo đặc tả ngôn ngữ, bạn có thể sử dụng một chuỗi ký tự thô, trong đó chuỗi được phân cách bằng backticks thay vì dấu ngoặc kép.
`line 1
line 2
line 3`
line 1
nó sẽ ẩn trong trình soạn thảo của bạn nhưng hiện diện trong chuỗi.
$(abcd)
).
Bạn có thể viết:
"line 1" +
"line 2" +
"line 3"
tương tự như:
"line 1line 2line3"
Không giống như sử dụng tick lại, nó sẽ bảo vệ các ký tự thoát. Lưu ý rằng "+" phải nằm trên dòng 'hàng đầu', nghĩa là:
"line 1"
+"line 2"
tạo ra một lỗi.
\n
và dễ dàng hơn nhiều để làm việc với các chuỗi động và như vậy. Nếu tôi đúng, câu trả lời được chấp nhận thực sự là dành cho các chuỗi tĩnh trong mã để làm cho nó trông đẹp hơn.
Từ literals chuỗi :
\n
'.Nhưng, nếu chuỗi nhiều dòng của bạn phải bao gồm một backquote (`), thì bạn sẽ phải sử dụng một chuỗi được hiểu theo nghĩa đen:
`line one
line two ` +
"`" + `line three
line four`
Bạn không thể trực tiếp đặt backquote (`) trong một chuỗi ký tự thô (` `xx \
).
Bạn phải sử dụng (như được giải thích trong " cách đặt backquote trong chuỗi backquote? "):
+ "`" + ...
Sử dụng chuỗi ký tự thô cho chuỗi nhiều dòng:
func main(){
multiline := `line
by line
and line
after line`
}
Xâu liệu là chuỗi ký tự giữa dấu ngoặc kép trở lại, như trong
`foo`
. Trong dấu ngoặc kép, bất kỳ ký tự nào cũng có thể xuất hiện ngoại trừ trích dẫn ngược.
Một phần quan trọng là đó là thô đen không chỉ nhiều đường và có nhiều đường không phải là mục đích duy nhất của nó.
Giá trị của một chuỗi ký tự thô là chuỗi bao gồm các ký tự không được giải thích (ngầm định UTF-8 được mã hóa) giữa các dấu ngoặc kép; đặc biệt là những dấu xồ nguợc không có ý nghĩa đặc biệt ...
Vì vậy, sẽ không thoát được giải thích và dòng mới giữa ve sẽ dòng mới thực .
func main(){
multiline := `line
by line \n
and line \n
after line`
// \n will be just printed.
// But new lines are there too.
fmt.Print(multiline)
}
Có thể bạn có dòng dài mà bạn muốn ngắt và bạn không cần dòng mới trong đó. Trong trường hợp này, bạn có thể sử dụng nối chuỗi.
func main(){
multiline := "line " +
"by line " +
"and line " +
"after line"
fmt.Print(multiline) // No new lines here
}
Vì "" được giải thích chuỗi thoát theo nghĩa đen sẽ được diễn giải.
func main(){
multiline := "line " +
"by line \n" +
"and line \n" +
"after line"
fmt.Print(multiline) // New lines as interpreted \n
}
Sử dụng lại ticks bạn có thể có chuỗi multiline:
package main
import "fmt"
func main() {
message := `This is a
Multi-line Text String
Because it uses the raw-string back ticks
instead of quotes.
`
fmt.Printf("%s", message)
}
Thay vì sử dụng dấu ngoặc kép (mệnh đề) hoặc ký hiệu trích dẫn đơn ('), thay vào đó, hãy sử dụng dấu kiểm ngược để xác định điểm bắt đầu và kết thúc của chuỗi. Sau đó bạn có thể bọc nó trên các dòng.
Nếu bạn thụt chuỗi mặc dù, hãy nhớ rằng khoảng trắng sẽ được tính.
Vui lòng kiểm tra sân chơi và làm thí nghiệm với nó.
Bạn phải rất cẩn thận về định dạng và khoảng cách dòng khi đi, mọi thứ đều có giá trị và đây là một mẫu hoạt động, hãy thử https://play.golang.org/p/c0zeXKYlmF
package main
import "fmt"
func main() {
testLine := `This is a test line 1
This is a test line 2`
fmt.Println(testLine)
}
Đối với tôi đây là những gì tôi sử dụng nếu thêm \n
không phải là một vấn đề.
fmt.Sprintf("Hello World\nHow are you doing today\nHope all is well with your go\nAnd code")
Khác bạn có thể sử dụng raw string
multiline := `Hello Brothers and sisters of the Code
The grail needs us.
`