Yanıtlar:
Dil belirtimine göre , dizenin çift tırnak yerine ters tırnaklarla sınırlandığı ham dize hazır bilgisi kullanabilirsiniz.
`line 1
line 2
line 3`
line 1
editörünüzde görünmez olacak, ancak dizede bulunacaksınız.
$(abcd)
).
Yazabilirsin:
"line 1" +
"line 2" +
"line 3"
ki aynı:
"line 1line 2line3"
Geri keneler kullanmanın aksine, kaçış karakterlerini koruyacaktır. "+" İfadesinin "satır aralığı" satırında olması gerektiğini unutmayın:
"line 1"
+"line 2"
bir hata oluşturur.
\n
ve dinamik dizelerle ve benzeriyle çalışmak daha kolaydır. Doğruysam, kabul edilen cevap gerçekten güzel görünmesi için koddaki statik dizeler içindir.
Gönderen Dize değişmezleri :
\n
' gibi kaçan karakterleri yorumlar .Ancak, çok satırlı dizenizin bir backquote (`) içermesi gerekiyorsa, yorumlanmış bir dize değişmezi kullanmanız gerekir:
`line one
line two ` +
"`" + `line three
line four`
Ham dize değişmezine (`` xx) doğrudan bir arka tırnak (`) koyamazsınız\
) .
Kullanmanız gerekir ("geri alıntılanmış bir dizeye backquote nasıl eklenir? " Bölümünde açıklandığı gibi ):
+ "`" + ...
Çok satırlı dizeler için ham dize değişmezlerini kullanın:
func main(){
multiline := `line
by line
and line
after line`
}
Ham dize değişmezleri, olduğu gibi arka tırnak işaretleri arasındaki karakter dizileridir
`foo`
. Tırnak işaretleri içinde, geri alıntı dışında herhangi bir karakter görünebilir.
Önemli bir nokta, sadece çok satırlı değil, çok satırlı olmanın da tek amacı ham değişmez olmasıdır.
Ham dize değişmezinin değeri, tırnak işaretleri arasında yorumlanmamış (örtük olarak UTF-8 kodlu) karakterlerden oluşan dizedir; özellikle ters eğik çizgilerin özel bir anlamı yoktur ...
Yani kaçışlar yorumlanmayacak ve keneler arasındaki yeni çizgiler gerçek yeni çizgiler olacak .
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)
}
Muhtemelen kırmak istediğiniz uzun bir hattınız var ve içinde yeni hatlara ihtiyacınız yok. Bu durumda dize birleştirme kullanabilirsiniz.
func main(){
multiline := "line " +
"by line " +
"and line " +
"after line"
fmt.Print(multiline) // No new lines here
}
"" Yorumlandığı için dizgi değişmez kaçışları yorumlanacaktır.
func main(){
multiline := "line " +
"by line \n" +
"and line \n" +
"after line"
fmt.Print(multiline) // New lines as interpreted \n
}
Geri keneler kullanarak çok satırlı dizelere sahip olabilirsiniz:
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)
}
Çift tırnak işareti (“) ya da tek tırnak işareti sembolleri (') kullanmak yerine, dizenin başlangıcını ve sonunu tanımlamak için geri kene kullanın. Daha sonra satırlar boyunca sarabilirsiniz.
Dizeyi girintili yaparsanız, beyaz boşluğun sayılacağını unutmayın.
Lütfen oyun alanını kontrol edin ve onunla deneyler yapın.
Biçimlendirme ve satır aralığı konusunda çok dikkatli olmalısınız, her şey önemlidir ve burada çalışan bir örnek, bunu deneyin 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)
}
Benim için eklemek \n
bir sorun değilse kullandığım budur.
fmt.Sprintf("Hello World\nHow are you doing today\nHope all is well with your go\nAnd code")
Başka kullanabilirsiniz raw string
multiline := `Hello Brothers and sisters of the Code
The grail needs us.
`