Inhaltsverzeichnis
Der Unterschied zwischen mehreren Ausgabemethoden in der Go-Sprache:
Wählen Sie im Allgemeinen Printf, wenn Sie die Ausgabeinformationen formatieren müssen. In anderen Fällen verwenden Sie Println
%t   true 或 false
Nach dem Login kopieren
" >
%t   true 或 false
Nach dem Login kopieren
7. Das Standardformat für %v ist:
8. Für zusammengesetzte Objekte:
Breite bezieht sich auf die „notwendige Mindestbreite“. Wenn die Breite der Ergebniszeichenfolge die angegebene Breite überschreitet, ist die angegebene Breite ungültig.
Programmierunterricht
Heim Backend-Entwicklung Golang Welche Ausgabemethoden gibt es in der Go-Sprache?

Welche Ausgabemethoden gibt es in der Go-Sprache?

Jan 04, 2023 pm 08:20 PM
golang go语言

Ausgabemethode: 1. Print()-Funktion, die an die Konsole ausgegeben werden kann (keine Formatierung wird akzeptiert), die Syntax ist „fmt.Print(str)“ 2. Println()-Funktion, die an ausgegeben werden kann die Konsole und der Wrap, Syntax „fmt.Println(tmp)“; 3. Die Funktion „Printf()“ kann nur einen formatierten String ausgeben formatiert und an „io.Writers“ ausgegeben werden.

Welche Ausgabemethoden gibt es in der Go-Sprache?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

Der Unterschied zwischen mehreren Ausgabemethoden in der Go-Sprache:

Print, Println, Printf<code> , <code> <strong>Sprintf</strong> FprintfSprintf ,

Fprintf
sind Alle öffentlichen Methoden im fmt-Paket müssen diese Funktionen beim Drucken von Informationen verwenden. Was ist also der Unterschied zwischen diesen Funktionen?

Print:   输出到控制台(不接受任何格式化,它等价于对每一个操作数都应用 %v)
         fmt.Print(str)
Println: 输出到控制台并换行
         fmt.Println(tmp)
Printf : 只可以打印出格式化的字符串。只可以直接输出字符串类型的变量(不可以输出整形变量和整形 等)
         fmt.Printf("%d",a)
Sprintf:格式化并返回一个字符串而不带任何输出。
         s := fmt.Sprintf("a %s", "string") fmt.Printf(s)
Fprintf:格式化并输出到 io.Writers 而不是 os.Stdout。
         fmt.Fprintf(os.Stderr, “an %s\n”, “error”)
Nach dem Login kopieren

Wählen Sie im Allgemeinen Printf, wenn Sie die Ausgabeinformationen formatieren müssen. In anderen Fällen verwenden Sie Println

Printf, um die Ausgabe zu formatieren

v     值的默认格式。
%+v   添加字段名(如结构体)
%#v  相应值的Go语法表示 
%T    相应值的类型的Go语法表示 
%%    字面上的百分号,并非值的占位符 
Nach dem Login kopieren

2. Boolescher Wert:

%t   true 或 false
Nach dem Login kopieren

3. Ganzzahlwerte:

%b     二进制表示 
%c     相应Unicode码点所表示的字符 
%d     十进制表示 
%o     八进制表示 
%q     单引号围绕的字符字面值,由Go语法安全地转义 
%x     十六进制表示,字母形式为小写 a-f 
%X     十六进制表示,字母形式为大写 A-F 
%U     Unicode格式:U+1234,等同于 "U+%04X"
Nach dem Login kopieren

4. Gleitkommazahlen und komplexe Zahlen:

%b     无小数部分的,指数为二的幂的科学计数法,与 strconv.FormatFloat中的 &#39;b&#39; 转换格式一致。例如 -123456p-78 
%e     科学计数法,例如 -1234.456e+78 
%E     科学计数法,例如 -1234.456E+78 
%f     有小数点而无指数,例如 123.456 
%g     根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出 
%G     根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出
Nach dem Login kopieren

5. Zeiger:

%s     字符串或切片的无解译字节 
%q     双引号围绕的字符串,由Go语法安全地转义 
%x     十六进制,小写字母,每字节两个字符 
%X     十六进制,大写字母,每字节两个字符
Nach dem Login kopieren
Es gibt kein „Du bist hier“-Zeichen. Wenn Ganzzahlen vom Typ ohne Vorzeichen sind, werden sie als vorzeichenlos ausgegeben. Ebenso ist es nicht erforderlich, die Größe des Operanden (int8, int64) anzugeben.

7. Das Standardformat für %v ist:

%p     十六进制表示,前缀 0x
Nach dem Login kopieren

Es ​​ist ersichtlich, dass das Standardausgabeformat mit %v angegeben werden kann, sofern keine anderen Formate als das Standardformat ausgegeben werden. v zum Ersetzen (aber nicht empfohlen)

8. Für zusammengesetzte Objekte:

Die darin enthaltenen Elemente werden nach den folgenden Regeln gedruckt:

bool:                    %t 
int, int8 etc.:          %d 
uint, uint8 etc.:        %d, %x if printed with %#v
float32, complex64, etc: %g
string:                  %s
chan:                    %p 
pointer:                 %p
Nach dem Login kopieren

9. Die Breite ist der Wert nach %. Wenn nicht angegeben, wird der Standardwert des Werts verwendet, und die Genauigkeit ist der Wert, der der Breite folgt. Wenn nicht angegeben, wird auch die Standardgenauigkeit des zu druckenden Werts verwendet. Beispiel: %9.2f, Breite 9, Genauigkeit 2
struct:            {field0 field1 ...} 
array, slice:      [elem0 elem1 ...] 
maps:              map[key1:value1 key2:value2] 
pointer to above:  &{}, &[], &map[]
Nach dem Login kopieren

Bei numerischen Werten ist die Breite die minimale Breite des Bereichs, der vom numerischen Wert eingenommen wird; die Genauigkeit ist die Anzahl der Nachkommastellen. Aber für %g/%G ist die Genauigkeit die Gesamtzahl der Ziffern. Beispielsweise würde für 123,45 das Format %6.2f 123,45 ausgeben, während %.4g 123,5 ausgeben würde. Die Standardgenauigkeit für %e und %f beträgt 6; für %g ist die Standardgenauigkeit jedoch die Mindestanzahl von Ziffern, die zur Bestimmung des Werts erforderlich sind.

Bei den meisten Werten ist die Breite die Mindestanzahl der auszugebenden Zeichen, ggf. mit aufgefüllten Leerzeichen für das formatierte Formular. Bei Zeichenfolgen entspricht die Genauigkeit der maximalen Anzahl ausgegebener Zeichen und wird bei Bedarf direkt gekürzt.

Breite bezieht sich auf die „notwendige Mindestbreite“. Wenn die Breite der Ergebniszeichenfolge die angegebene Breite überschreitet, ist die angegebene Breite ungültig.

Wenn die Breite als „*“ angegeben ist, wird der Breitenwert aus dem Parameter ermittelt.

Die Zahlenfolge direkt nach „.“ gibt die Genauigkeit an (wenn nur „.“ vorhanden ist, ist es „.0“). Wenn Sie auf einen ganzzahligen Indikator („d“, „i“, „b“, „o“, „x“, „X“, „u“) stoßen, gibt die Genauigkeit die Länge des numerischen Teils an ein Float Im Fall des Punktindikators („f“) stellt er die Anzahl der Ziffern im Dezimalteil dar.

Wenn Sie auf einen Gleitkommaindikator („e“, „E“, „g“, „G“) stoßen, stellt dieser die Anzahl der signifikanten Ziffern dar.

Wenn die Genauigkeit auf „*“ eingestellt ist, wird er verwendet aus dem Parameter Extrahieren Sie den Wert von precision

Für die Zeichenfolge %s oder den Gleitkommatyp %f kann die Präzision die Länge der Daten kürzen. Wie unten gezeigt.

%f:      default width, default precision 
%9f      width 9, default precision 
%.2f     default width, precision 2 
%9.2f    width 9, precision 2 
%9.f     width 9, precision 0
Nach dem Login kopieren

10. Andere Flags:

func main() {
    a := 123
    fmt.Printf("%1.2d\n", a)    //123,宽度为1小于数值本身宽度,失效,而精度为2,无法截断整数
    b := 1.23
    fmt.Printf("%1.1f\n", b)    //1.2,精度为1,截断浮点型数据
    c := "asdf"
    fmt.Printf("%*.*s\n", 1, 2, c) //as,利用&#39;*&#39;支持宽度和精度的输入,并且字符串也可以利用精度截断
}
Nach dem Login kopieren

Für jede Funktion der Printf-Klasse gibt es eine Print-Funktion, die keine Formatierung akzeptiert. Dies entspricht der Anwendung von %v auf jeden Operanden. Eine andere variable Parameterfunktion, Println, fügt Leerzeichen zwischen den Operanden ein und hängt am Ende ein Zeilenumbruchzeichen an.

Wenn der Platzhalter nicht berücksichtigt wird und der Operand ein Schnittstellenwert ist, wird sein interner spezifischer Wert anstelle der Schnittstelle selbst verwendet. Wie unten gezeigt:

+     总打印数值的正负号;对于%q(%+q)保证只输出ASCII编码的字符。 
-     左对齐 
#     备用格式:为八进制添加前导 0(%#o),为十六进制添加前导 0x(%#x)或0X(%#X),为 %p(%#p)去掉前导 0x;对于 %q,若 strconv.CanBackquote 返回 true,就会打印原始(即反引号围绕的)字符串;如果是可打印字符,%U(%#U)会写出该字符的Unicode编码形式(如字符 x 会被打印成 U+0078 &#39;x&#39;)。 
&#39; &#39;  (空格)为数值中省略的正负号留出空白(% d);以十六进制(% x, % X)打印字符串或切片时,在字节之间用空格隔开 
0     填充前导的0而非空格;对于数字,这会将填充移到正负号之后
Nach dem Login kopieren

11. Parameterplatzhalter anzeigen:

Go unterstützt die Anzeige von Parameterplatzhaltern durch Angabe der Reihenfolge ihrer Ausgabe im Ausgabeformat, wie unten gezeigt:

package main
 
import (
	"fmt"
)
 
type Sample struct {
	a   int
	str string
}
 
func main() {
	var i interface{} = Sample{1, "a"}
	fmt.Printf("%v\n", i)      //{1 a}
}
Nach dem Login kopieren

12. Formatierungsfehler:

Wenn ein ungültiges Argument dem Platzhalter bereitgestellt wird (z. B. die Bereitstellung einer Zeichenfolge für %d), tritt ein Formatierungsfehler auf. Alle Fehler beginnen mit „%!“, manchmal gefolgt von einem einzelnen Zeichen (Platzhalter), und enden mit einer in Klammern eingeschlossenen Beschreibung.

func main() {
    fmt.Printf("%[2]d, %[1]d\n", 11, 22)  //22, 11,先输出第二个值,再输出第一个值
}
Nach dem Login kopieren

Ausgabebeispiel

func main() {
	var i int = 1
	fmt.Printf("%s\n", i)  //%!s(int=1)
}
Nach dem Login kopieren
【Verwandte Empfehlungen:

Go-Video-Tutorial

,

Programmierunterricht

Das obige ist der detaillierte Inhalt vonWelche Ausgabemethoden gibt es in der Go-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Apr 02, 2025 pm 02:09 PM

Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...

Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Apr 02, 2025 pm 02:06 PM

In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Apr 02, 2025 pm 02:03 PM

Der Unterschied zwischen Stringdruck in GO -Sprache: Der Unterschied in der Wirkung der Verwendung von Println und String () ist in Go ...

Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Apr 02, 2025 pm 04:12 PM

Welche Bibliotheken in GO werden von großen Unternehmen oder bekannten Open-Source-Projekten entwickelt? Bei der Programmierung in Go begegnen Entwickler häufig auf einige häufige Bedürfnisse, ...

Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Apr 02, 2025 pm 12:57 PM

Zwei Möglichkeiten, Strukturen in der GO -Sprache zu definieren: Der Unterschied zwischen VAR- und Typ -Schlüsselwörtern. Bei der Definition von Strukturen sieht die Sprache oft zwei verschiedene Schreibweisen: Erstens ...

Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Apr 02, 2025 pm 04:54 PM

Das Problem der Verwendung von RETISTREAM zur Implementierung von Nachrichtenwarteschlangen in der GO -Sprache besteht darin, die Go -Sprache und Redis zu verwenden ...

Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Apr 02, 2025 pm 05:09 PM

Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Bei der Verwendung von Goland für GO -Sprachentwicklung begegnen viele Entwickler benutzerdefinierte Struktur -Tags ...

Wie kann ich das Problem der Einschränkungen des generischen Funktionstyps der Golang -Funktionstypen lösen, die automatisch in VSCODE gelöscht werden? Wie kann ich das Problem der Einschränkungen des generischen Funktionstyps der Golang -Funktionstypen lösen, die automatisch in VSCODE gelöscht werden? Apr 02, 2025 pm 02:15 PM

Automatische Löschung von Golang Generic -Funktionstypeinschränkungen in VSCODE -Benutzern kann auf ein seltsames Problem beim Schreiben von Golang -Code mit VSCODE stoßen. Wann...

See all articles