es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para crear una función variádica que acepte una cadena de formato y argumentos, puedes utilizar la función Printf del paquete fmt. Aquí tienes un ejemplo de implementación:

    import "fmt"
    
    func cfprintInfo(formato string, args ...interface{}) {
        color.HEX("#B0DFE5").Print("[!] ")
        color.HEX("#FFFFFF").Printf(formato+"\n", args...)
    }
    

    En esta implementación, formato es la cadena de formato que especifica cómo deben formatearse los argumentos. La sintaxis args... 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:

    cfprintInfo("Hola %s", "mundo")
    // [!] Hola mundo
    

    Esto producirá la salida deseada, utilizando el paquete color para imprimir el mensaje en el color apropiado.

Comments are closed.