2013-07-16 19 views
5

Bugün, bazı kodlarda, bugüne kadar tanımlanmayan bir "yazdırma" ile şaşırttım. Biraz oynamayı bitirdikten sonra,go dahili "yazdırma" işlevine sahip mi?

adresindeki ör.

print("Hello World") 

Yani yerleşik bir çeşit gibi görünüyor ama gönderiminden bulamıyor (ve go kuralları asla zaten ithal küçük fonksiyonlar sanıyordum)

bu iyi bilinen ve eğer mı Diğer kolaylık fonksiyonları var mı yoksa sadece çok mu çok kafam var?

Diğer bir nokta - bu yazdırma fmt.Printf'in sihirli biçimlendirme numaralarını (% v) kullanmaz. - Haritaları veya yapıları yazdırırsanız, adreslerini alırsınız.

cevap

8

Haklısınız, ve bir başkası bundan şikayet etti. Bir sonraki Go sürümü için yerleşik belgelere eklenmiştir (go1.2).

func print

func print(args ...Type) 

print yerleşik işlevi uygulama özgü bir şekilde kendi argümanları biçimlendirir ve standart hata sonucu yazar Package builtin

. Baskı, ön yükleme ve hata ayıklama için kullanışlıdır; Dilde kalmak garanti edilmez.

func println

func println(args ...Type) 

println yerleşik işlevi uygulama özgü bir şekilde kendi argümanları biçimlendirir ve standart hata sonucu yazar

. Mekanlar her zaman argümanlar arasında eklenir ve yeni satır eklenir. Println, önyükleme ve hata ayıklama için kullanışlıdır; Bu dilde kalmak garantili değildir. Beni hiç attı Ne çabuk tepki

için

+0

Harika! Bu arada const yazdırmayı bildirebilirsiniz: = fmt.Println' –

+3

@ColonelPanic: 'const print: = fmt.Println' derleyici hatasıdır. 'fmt.Println' sabit değildir. 'Var print = fmt.Println' veya' print: = fmt.Println' yazın. – peterSO

+0

'print' ve' println' başlangıçtan beri Go’da. Dil belirtiminde tanımlanmıştır. – user102008

0

Teşekkür

Tehlikeli bir özellik gibi görünüyor (versiyonunda yine kullanıyorum) print tanımlamıyor 'yerleşik' paketidir Genel olarak bağlıyım, bu yüzden hiç görmedim ve fmt.Print'e devam ettiğimi farzedeyim.

+0

Bazı paketlerde tanımlanmaları gerekmez.Dil belirtiminde tanımlanmıştır. – user102008