Podría anular el comportamiento de la función integrada print()
definiendo otro print()
en el alcance, como en https://play.golang.org/p/Y2ly31oXU67
¿Es posible modificar el comportamiento sobre la marcha de una función importada, digamos fmt.Println()
?
2 respuestas
Importe un paquete diferente con el nombre "fmt" e implemente las funciones que necesite en ese paquete. Aquí hay un ejemplo:
Archivo go.mod:
module test
Archivo main.go
package main
import (
"test/fmt"
)
func main() {
fmt.Println("Hello, playground")
}
Archivo fmt / fmt.go:
package fmt
import (
"fmt"
"log"
)
func Println(format string, args ...interface{}) {
msg := fmt.Sprintf(format, args...)
log.Printf(msg)
}
El código en esta respuesta no modifica la función importada como se pregunta en la pregunta.
Si desea 'alterar' una función incorporada, mire la muy buena utilidad de parche de mono https://github.com / bouk / monkey (y preste atención a las advertencias, solo es realmente útil en las funciones de prueba, y por mi parte rechazo cualquier código de producto que importe ese paquete)
Nuevas preguntas
go
Go es un lenguaje de programación de código abierto. Está tipado estáticamente, con una sintaxis derivada libremente de C, que agrega administración de memoria automática, seguridad de escritura, algunas capacidades de tipeo dinámico, tipos incorporados adicionales, como matrices de longitud variable (llamados cortes) y mapas de valores clave, y un Gran biblioteca estándar.