2017-10-21 53 views
-5

comment imprimer ascii texte en langage go comme python ne comme le montre la photo ci-dessousComment imprimer le texte ascii en aller comme Python ne

En utilisant python

enter image description here

En utilisant golang

enter image description here

+0

Essayez ceci: https://stackoverflow.com/a/4424560/8307258 –

+0

Vous devez toujours fournir le code de telle sorte qu'un développeur peut copier et coller facilement. Soit pour un débogage facile, soit pour exécuter le code eux-mêmes. Les images montrant le code ne sont pas faciles à travailler. Par exemple. J'allais vous montrer une solution avec 'fmt.Sprintf()', mais je ne vais pas taper le dessus ... – reticentroot

Répondre

-1

Le problème est que votre texte contient backtick (`), qui se trouve être le caractère délimiteur pour le littéral brut de chaîne de golang. Cette situation est comparable à votre code python si votre texte contenait 3 doubles guillemets consécutifs, ce qui est le délimiteur utilisé dans votre code python.

Je ne vois aucune évasion rapide de cette situation sans modifier votre texte ascii, car nous n'avons pas d'autres options pour le délimiteur de chaîne brute dans golang comme nous avons en python. Vous pouvez stocker votre texte ascii dans un fichier texte et le lire à partir de là:

import (
    .... 
    .... 
    "io/ioutil" 
) 

func banner() string { 
    b, err := ioutil.ReadFile("ascii.txt") 
    if err != nil { 
     panic(err) 
    } 
    fmt.Println(string(b)) 
} 

Si vous êtes ok avec une légère modification à la source de texte ascii, vous pouvez utiliser temporairement un autre caractère non utilisé ailleurs dans le texte ASCII pour représenter le backtick, puis faites le remplacement de la chaîne pour mettre le backtick réel en place. Ou bien, vous pouvez utiliser fmt.Sprintf pour alimenter la backtick problématique:

ascii := fmt.Sprintf(`....%c88b...`, '`') 
fmt.Println(ascii) 
// output: 
// ....`88b... 
+0

merci de m'avoir aidé, Je viens de trouver un style de texte ascii qui ne fonctionne pas contenir le caractère de retour. ce problème a été résolu. –

0

Oui, mais vous devez diviser les lignes avec backtick et les mettre en cités citation double standard .

... + 
“888 6(, ` ‘ “ + 
...