Comment imprimer une liste de 2 en Golang ?
l'éditeur php Baicao vous montrera comment imprimer 2 listes dans Golang. Dans Golang, nous pouvons utiliser la fonction Println du package fmt pour imprimer la liste. Tout d’abord, nous devons définir et initialiser les deux listes séparément, puis utiliser la fonction Println pour les imprimer. En utilisant une boucle et une variable d'index, nous pouvons parcourir les éléments de la liste un par un et les imprimer. De cette façon, nous pouvons facilement imprimer le contenu de 2 listes dans Golang.
Contenu de la question
Je suis un peu troublé par ce problème. Mon idée est d'avoir une fonction qui imprime deux colonnes. Le premier concerne les clés, qui ont une largeur fixe. La seconde est la valeur, qui peut être une chaîne très longue dont la largeur dépend de la largeur actuelle du terminal.
Un exemple de ce que je veux :
key1 value1value1value1value1 key2 value2value2value2value2value2value2value2value2value2value2value2 value2value2value2value2value2value2value2value2value2value2value2 value2value2value2value2value2value2
Le meilleur résultat que j'ai obtenu jusqu'à présent est d'utiliser du brillant à lèvres pour définir une largeur fixe pour la première colonne.
func printmetadata(metadata map[string]string, color string) { style := lipgloss.newstyle().width(32).foreground(lipgloss.color(color)) for k, v := range metadata { fmt.println(style.render(k) + v) } }
Le résultat est similaire à :
Key1 Value1Value1Value1Value1 Key2 Value2Value2Value2Value2Value2Value2Value2Value2Value2Value2Value2 Value2Value2Value2Value2Value2Value2Value2Value2Value2Value2Value2Value2Value2Value2Value2Value2Value2
Alors, comment formater une chaîne comme je le souhaite ? Je peux utiliser à la fois la bibliothèque standard et les bibliothèques externes, donc toutes les suggestions sont les bienvenues.
Workaround
J'ai créé une fonction pour cela. Cette fonction prend deux paramètres, le premier est une variable de mappage pour la colonne et le second est le nombre de caractères avec lesquels remplir chaque ligne. Il modifie simplement le contenu de la valeur de la clé avec des espaces dans une nouvelle variable, puis imprime la valeur de la clé. Mais si vous travaillez avec des valeurs non modifiées, vous pouvez utiliser des variables non modifiées.
package main import ( "fmt" "errors" "strings" "sort" ) func main() { a := map[string]string{ "key1": strings.repeat("value1", 50), "key2": strings.repeat("value2", 50), "key3": strings.repeat("value3", 50), } err := columner(a, 30) if err != nil { fmt.println(err) } } func columner(m map[string]string, charamount int) error{ var keys []string var keylens []int // to avoid index panics and gathering keys for later usage for key, value := range m { if charamount > len(value) || charamount < 1{ return errors.new("error: charamount neither be greather than length of key's value nor below 1") } keys = append(keys, key) keylens = append(keylens, len(key)) } sort.ints(keylens) for i := 0; i < len(keys); i++ { // for storing updated value of key var value2 string value := m[keys[i]] // will used while extracting substring of key's value as first index firsti := 0 // last index for extract substring from key's value. the len of substring will be same as charamount charamount2 := charamount // will be used to advance next substring of key's value advance := charamount2 // spaces between between key and value // key value spacing := strings.repeat(" ", 20 + (keylens[0] - len(keys[i]))) // var for adjusting spaces of gap between key and value of next line // key value // value // to // key value // value spacingu := spacing + strings.repeat(" ", len(keys[i]) + 1) // this loop will be run as long as there is no substring left which exceed next line for j := 0; j < len(value); j += advance { // adjusting spaces of gap between key and value of next line if j > 0 { spacing = spacingu } // add space between key and value, then extract substring, then add spaces to the next line of the // next substring of key's value value2 += spacing + value[firsti:charamount2] + "\n" // finish loop when there is no substring that can be exceed to next line if ((len(value) - charamount2) < advance) || ((len(value) - charamount2) == advance) { break } // changing first index to start index of next substring of key's value firsti = charamount2 // advancing to next substring of key's value charamount2 += advance } // add last remaining substring of key's value to variable which will be show as formatted. value2 += spacing + value[charamount2:] // show formatted key and value fmt.println(keys[i], value2, "\n") } return nil }
Voici un exemple de sortie :
Key1 Value1Value1Value1Value1Value1 Value1Value1Value1Value1Value1 Value1Value1Value1Value1Value1 Value1Value1Value1Value1Value1 Value1Value1Value1Value1Value1 Value1Value1Value1Value1Value1 Value1Value1Value1Value1Value1 Value1Value1Value1Value1Value1 Value1Value1Value1Value1Value1 Value1Value1Value1Value1Value1 Key2 Value2Value2Value2Value2Value2 Value2Value2Value2Value2Value2 Value2Value2Value2Value2Value2 Value2Value2Value2Value2Value2 Value2Value2Value2Value2Value2 Value2Value2Value2Value2Value2 Value2Value2Value2Value2Value2 Value2Value2Value2Value2Value2 Value2Value2Value2Value2Value2 Value2Value2Value2Value2Value2 Key3 Value3Value3Value3Value3Value3 Value3Value3Value3Value3Value3 Value3Value3Value3Value3Value3 Value3Value3Value3Value3Value3 Value3Value3Value3Value3Value3 Value3Value3Value3Value3Value3 Value3Value3Value3Value3Value3 Value3Value3Value3Value3Value3 Value3Value3Value3Value3Value3 Value3Value3Value3Value3Value3
Mais veuillez noter ceci, l'ordre des clés et des valeurs peut être différent à chaque exécution car les types de cartes ne sont pas ordonnés lors de l'impression dans une boucle for avec des paires clé-valeur.
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)

Sujets chauds

Il existe deux manières d'obtenir des valeurs absolues en C++ : 1. Utilisez la fonction intégrée abs() pour obtenir la valeur absolue d'un type entier ou à virgule flottante 2. Utilisez la fonction générique std::abs() pour ; obtenir diverses valeurs absolues prises en charge. Fonctionne sur les valeurs absolues des types de données.

La bibliothèque iomanip est utilisée en C++ pour les opérations d'entrée et de sortie formatées, spécifiant comment formater les données via des indicateurs de format. Il fournit les fonctions suivantes : formatage de l'entrée, lecture des données du flux d'entrée. Formater la sortie, écrit les données dans le flux de sortie et les formate comme spécifié. Utilisez des indicateurs de format tels que setw(n) (définir la largeur du champ), setprecision(n) (définir les décimales) et setiosflags(flag) (définir les indicateurs de flux d'E/S).

std est l'espace de noms en C++ qui contient les composants de la bibliothèque standard. Pour utiliser std, utilisez l'instruction "using namespace std;". L'utilisation de symboles directement à partir de l'espace de noms std peut simplifier votre code, mais n'est recommandée que lorsque cela est nécessaire pour éviter la pollution de l'espace de noms.

prime est un mot-clé en C++, indiquant le type de nombre premier, qui ne peut être divisé que par 1 et lui-même. Il est utilisé comme type booléen pour indiquer si la valeur donnée est un nombre premier. S'il s'agit d'un nombre premier, c'est le cas. vrai, sinon c'est faux.

Il existe deux manières de créer des popups en Python : Tkinter : utilisez la bibliothèque Tkinter pour créer des widgets Tk ou TopLevel. Pyglet : utilisez la bibliothèque Pyglet pour créer des fenêtres Window.

Config représente les informations de configuration en Java et est utilisé pour ajuster le comportement de l'application. Il est généralement stocké dans des fichiers ou des bases de données externes et peut être géré via Java Properties, PropertyResourceBundle, Java Configuration Framework ou des bibliothèques tierces. Ses avantages incluent le découplage et la flexibilité. sensibilisation à l'environnement, gérabilité, évolutivité.

La fonction fabs() est une fonction mathématique en C++ qui calcule la valeur absolue d'un nombre à virgule flottante, supprime le signe négatif et renvoie une valeur positive. Il accepte un paramètre à virgule flottante et renvoie une valeur absolue de type double. Par exemple, fabs(-5.5) renvoie 5,5. Cette fonction fonctionne avec des nombres à virgule flottante, dont la précision est affectée par le matériel sous-jacent.

Il existe trois façons de trouver la valeur absolue en C++ : À l’aide de la fonction abs(), vous pouvez calculer la valeur absolue de n’importe quel type de nombre. À l'aide de la fonction std::abs(), vous pouvez calculer la valeur absolue d'entiers, de nombres à virgule flottante et de nombres complexes. Calcul manuel de valeurs absolues, adapté aux entiers simples.
