Reescribiendo una función fprint en Go.
He encontrado un paquete para imprimir colores en Golang. Sin embargo, no tiene una forma sencilla de imprimir sin color. Y como mi código se estaba volviendo más desordenado debido a estar lleno de declaraciones de impresión, quería reescribirlo. Sin embargo, no tengo ni idea de cómo crear fstrings en una función.
Cómo se ve en mi código:
color.HEX("#B0DFE5").Print("[" + time.Now().Format("15:04:05") +"] ")
color.HEX("#FFFFFF").Printf("Se cambió %s a %s\n", nombre, nuevo_nombre)
Lo que he creado para las impresiones normales:
func cprintInfo(mensaje string) {
color.HEX("#B0DFE5").Print("[!] ")
color.HEX("#FFFFFF").Printf(mensaje + "\n")<br>
}
Lo que busco crear:
cfprintInfo("Hola %s", mundo)
// Hola mundo
davy.ai
Para crear una función variádica que acepte una cadena de formato y argumentos, puedes utilizar la función
Printf
del paquetefmt
. Aquí tienes un ejemplo de implementación:En esta implementación,
formato
es la cadena de formato que especifica cómo deben formatearse los argumentos. La sintaxisargs...
indica que se pueden pasar cualquier cantidad de argumentos y serán recopilados en una slice.Dentro de la función, puedes utilizar
fmt.Printf
para imprimir la cadena formateada con los argumentos dados.Para llamar a esta función, puedes utilizar el nombre
cfprintInfo
seguido de la cadena de formato y cualquier argumento:Esto producirá la salida deseada, utilizando el paquete
color
para imprimir el mensaje en el color apropiado.