%t true 或 false
Quelles sont les méthodes de sortie en langage Go ?
Méthode de sortie : 1. Fonction Print(), qui peut être sortie sur la console (aucun formatage n'est accepté), la syntaxe est "fmt.Print(str)" ; 2. Fonction Println(), qui peut être sortie vers la console et wrap, Syntaxe "fmt.Println(tmp)" ; 3. La fonction Printf() ne peut imprimer qu'une chaîne formatée ; 4. La fonction Sprintf() peut formater et renvoyer une chaîne ; être formaté et sorti sur "io.Writers".
L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.
La différence entre plusieurs méthodes de sortie en langage Go
Print, Println, Printf<code> , <code>
、<strong>Sprintf</strong>
、Fprintf
Sprintf ,
Fprintf
sont all Les méthodes publiques du package fmt doivent utiliser ces fonctions lors de l'impression des informations. Alors, quelle est la différence entre ces fonctions ?
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”)
Choisissez généralement Printf lorsque vous devez formater les informations de sortie. À d'autres moments, utilisez Println
Printf pour formater la sortie1.
v 值的默认格式。
%+v 添加字段名(如结构体)
%#v 相应值的Go语法表示
%T 相应值的类型的Go语法表示
%% 字面上的百分号,并非值的占位符
Copier après la connexion 3. Valeurs entières :
v 值的默认格式。 %+v 添加字段名(如结构体) %#v 相应值的Go语法表示 %T 相应值的类型的Go语法表示 %% 字面上的百分号,并非值的占位符
%t true 或 false
Copier après la connexion4. Nombres à virgule flottante et nombres complexes :
%t true 或 false
%b 二进制表示
%c 相应Unicode码点所表示的字符
%d 十进制表示
%o 八进制表示
%q 单引号围绕的字符字面值,由Go语法安全地转义
%x 十六进制表示,字母形式为小写 a-f
%X 十六进制表示,字母形式为大写 A-F
%U Unicode格式:U+1234,等同于 "U+%04X"
Copier après la connexion5. Représentation en tranches de chaînes et d'octets :
%b 二进制表示 %c 相应Unicode码点所表示的字符 %d 十进制表示 %o 八进制表示 %q 单引号围绕的字符字面值,由Go语法安全地转义 %x 十六进制表示,字母形式为小写 a-f %X 十六进制表示,字母形式为大写 A-F %U Unicode格式:U+1234,等同于 "U+%04X"
%b 无小数部分的,指数为二的幂的科学计数法,与 strconv.FormatFloat中的 'b' 转换格式一致。例如 -123456p-78
%e 科学计数法,例如 -1234.456e+78
%E 科学计数法,例如 -1234.456E+78
%f 有小数点而无指数,例如 123.456
%g 根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出
%G 根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出
Copier après la connexion6.
%b 无小数部分的,指数为二的幂的科学计数法,与 strconv.FormatFloat中的 'b' 转换格式一致。例如 -123456p-78 %e 科学计数法,例如 -1234.456e+78 %E 科学计数法,例如 -1234.456E+78 %f 有小数点而无指数,例如 123.456 %g 根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出 %G 根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出
%s 字符串或切片的无解译字节 %q 双引号围绕的字符串,由Go语法安全地转义 %x 十六进制,小写字母,每字节两个字符 %X 十六进制,大写字母,每字节两个字符
Il n'y a pas de marque « vous êtes ici ». Si les entiers sont de type non signé, ils sont imprimés comme non signés. De même, il n'est pas nécessaire de préciser la taille de l'opérande (int8, int64).
7. Le format par défaut pour %v est :%p 十六进制表示,前缀 0x
On peut voir que le format de sortie par défaut peut être spécifié en utilisant %v À moins que d'autres formats de sortie soient différents de celui par défaut, % peut être utilisé. v à remplacer (mais non recommandé)
8. Pour les objets composites :Les éléments à l'intérieur sont imprimés selon les règles suivantes : 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
Copier après la connexion
9. Largeur et précision : 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
La largeur est la valeur après %. , si elle n'est pas spécifiée, la valeur par défaut de la valeur est utilisée et la précision est la valeur qui suit la largeur. Si elle n'est pas spécifiée, la précision par défaut de la valeur à imprimer est également utilisée. Par exemple : %9.2f, largeur 9, précision 2struct: {field0 field1 ...}
array, slice: [elem0 elem1 ...]
maps: map[key1:value1 key2:value2]
pointer to above: &{}, &[], &map[]
Copier après la connexionPour les valeurs numériques, la largeur est la largeur minimale de la zone occupée par la valeur numérique ; la précision est le nombre de chiffres après la virgule. Mais pour %g/%G, la précision est le nombre total de chiffres. Par exemple, pour 123,45, le format %6.2f imprimerait 123,45, tandis que %.4g imprimerait 123,5. La précision par défaut pour %e et %f est 6 ; mais pour %g , la précision par défaut est le nombre minimum de chiffres nécessaire pour déterminer la valeur.
struct: {field0 field1 ...} array, slice: [elem0 elem1 ...] maps: map[key1:value1 key2:value2] pointer to above: &{}, &[], &map[]
Pour la plupart des valeurs, la largeur correspond au nombre minimum de caractères à afficher, avec des espaces complétés si nécessaire pour le formulaire formaté. Pour les chaînes, la précision est le nombre maximum de caractères sortis, et sera directement tronquée si nécessaire.
La largeur fait référence à la "largeur minimale nécessaire". Si la largeur de la chaîne de résultat dépasse la largeur spécifiée, la largeur spécifiée sera invalide.
Si la largeur est spécifiée comme `*', la valeur de la largeur sera obtenue à partir du paramètre.
La chaîne numérique qui suit immédiatement "." indique la précision (s'il n'y a que ".", c'est ".0"). Si vous rencontrez un indicateur entier (`d', `i', `b', `o', `x', `X', `u'), la précision indique la longueur de la partie numérique
Si vous rencontrez un float Dans le cas de l'indicateur ponctuel (`f'), il représente le nombre de chiffres dans la partie décimale.
Si vous rencontrez un indicateur à virgule flottante (`e', `E', `g', `G'), il représente le nombre de chiffres significatifs
Si la précision est définie sur `*', elle sera prise du paramètre Extraire la valeur de précision
Pour la chaîne %s ou le type à virgule flottante %f, la précision peut tronquer la longueur des données. Comme indiqué ci-dessous.
%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
10. Autres drapeaux :
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,利用'*'支持宽度和精度的输入,并且字符串也可以利用精度截断 }
Pour chaque fonction de la classe Printf, il existe une fonction Print, qui n'accepte aucun formatage. Cela équivaut à appliquer %v à chaque opérande. Une autre fonction de paramètre variable, Println, insère des espaces entre les opérandes et ajoute un caractère de nouvelle ligne à la fin
Si l'espace réservé n'est pas pris en compte, si l'opérande est une valeur d'interface, sa valeur spécifique interne sera utilisée à la place de l'interface elle-même. Comme indiqué ci-dessous :
+ 总打印数值的正负号;对于%q(%+q)保证只输出ASCII编码的字符。 - 左对齐 # 备用格式:为八进制添加前导 0(%#o),为十六进制添加前导 0x(%#x)或0X(%#X),为 %p(%#p)去掉前导 0x;对于 %q,若 strconv.CanBackquote 返回 true,就会打印原始(即反引号围绕的)字符串;如果是可打印字符,%U(%#U)会写出该字符的Unicode编码形式(如字符 x 会被打印成 U+0078 'x')。 ' ' (空格)为数值中省略的正负号留出空白(% d);以十六进制(% x, % X)打印字符串或切片时,在字节之间用空格隔开 0 填充前导的0而非空格;对于数字,这会将填充移到正负号之后
11. Afficher les espaces réservés pour les paramètres :
Go prend en charge l'affichage des espaces réservés pour les paramètres en spécifiant l'ordre de leur sortie dans le format de sortie, comme indiqué ci-dessous :
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} }
12. est fourni à l'espace réservé (par exemple en fournissant une chaîne à %d), une erreur de formatage se produira. Toutes les erreurs commencent par "%!", parfois suivi d'un seul caractère (espace réservé), et se terminent par une description entre parenthèses.
func main() { fmt.Printf("%[2]d, %[1]d\n", 11, 22) //22, 11,先输出第二个值,再输出第一个值 }
func main() { var i int = 1 fmt.Printf("%s\n", i) //%!s(int=1) }
【Recommandations associées :
Go tutoriel vidéo, Enseignement de la programmation】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Deux façons de définir les structures dans le langage GO: la différence entre les mots clés VAR et le type. Lorsque vous définissez des structures, GO Language voit souvent deux façons d'écrire différentes: d'abord ...

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...

La suppression automatique des contraintes de type de fonction générique Golang dans les utilisateurs de VScode peut rencontrer un problème étrange lors de l'écriture de code Golang à l'aide de VScode. quand...
