~~ Usar biblioteca estándar
1. Evitar reinventar la rueda
El funcionario proporciona muchas bibliotecas para que usemos, que son ruedas empaquetadas, como bolsas fmt
, y las usamos muchas veces para imprimir datos.
Podemos ver la implementación dentro de:
package fmt
func Println(a ...interface{}) (n int, err error) {
return Fprintln(os.Stdout, a...)
}
func Printf(format string, a ...interface{}) (n int, err error) {
return Fprintf(os.Stdout, format, a...)
}
func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {
p := newPrinter()
p.doPrintf(format, a)
n, err = w.Write(p.buf)
p.free()
return
}
func Fprintln(w io.Writer, a ...interface{}) (n int, err error) {
p := newPrinter()
p.doPrintln(a)
n, err = w.Write(p.buf)
p.free()
return
}
La función Println
es imprimir y ajustar directamente, y Printf
la función es formatear la salida, como:
// 打印一行空行
fmt.Println()
// 打印 4 5 6
fmt.Println(4, 5, 6)
// 占位符 %d 打印数字,\n换行
fmt.Printf("%d\n", 2)
// 占位符 %s 打印字符串,\n换行
fmt.Printf("%s\n", "cat")
// 占位符 %v或者%#v 打印任何类型,\n换行
fmt.Printf("%#v,%v\n", "cat", 33)
// 更多示例
fmt.Printf("%s,%d,%s,%v,%#v\n", "cat", 2, "3", map[int]string{1: "s"}, map[int]string{1: "s"})
Salida:
4 5 6
2
cat
"cat",33
cat,2,3,map[int]string{1:"s"}
La función Printf
usa otra función Fprintf
, y Fprintf
otros métodos de estructura se llaman dentro de la función .
Para lo que usamos a menudo func Printf(format string, a ...interface{})
, pasamos format
y muchas variables a ...interface{}
, y podemos imprimir los resultados que queremos en la consola. Tales como:
fmt.Printf("%s,%d,%s,%v,%#v\n", "cat", 2, "3", map[int]string{1: "s"}, map[int]string{1: "s"})
Entre ellos %
hay un marcador de posición, lo que significa que las siguientes variables tienen lugar una por una. Las letras minúsculas después de los %s
marcadores de posición %d
indican el tipo de marcador de posición, el marcador de posición de cadena, el marcador de posición de tipo numérico %v
o el %#v
marcador de posición de tipo desconocido. Determinará automáticamente el tipo e imprimirá, además #
imprimirá un poco más detallado. Debido a que la impresión no se ajustará, necesitamos usar el \n
carácter de nueva línea para ajustar.
En algún momento, podemos usar bibliotecas oficiales o bibliotecas escritas por otros, después de todo, la reconstrucción de la rueda lleva tiempo.
Al mismo tiempo, si desea mejorar la velocidad de desarrollo IDE
, se recomienda instalar , es decir Integrated Development Environment
(entorno de desarrollo integrado), como Goland
(soporte nativo Golang
) o IDEA
software (se requiere instalación de complemento).
2. Resumen
Solo aprendimos Golang
un subconjunto del idioma. Si desea obtener más detalles, puede docker
abrir el terminal después de la instalación :
# 拉镜像
docker pull hunterhug/gotourzh
# 后台运行
docker run -d -p 9999:9999 hunterhug/gotourzh
Abra el navegador e ingrese: 127.0.0.1:9999 para obtener más información.
El último análisis e implementación del algoritmo se utilizará Golang
como ejemplo.
Entrada de artículo de serie
Soy la estrella Chen, bienvenido he escrito personalmente estructuras de datos y algoritmos (Golang lograr) , comenzando en el artículo para leer más amigable GitBook .
- Estructura de datos y algoritmo (implementación de Golang) (1) Una introducción simple a Golang-Prefacio
- Estructuras de datos y algoritmos (implementación de Golang) (2) Una introducción simple a los paquetes, variables y funciones de Golang
- Estructura de datos y algoritmo (implementación de Golang) (3) Una introducción simple a la declaración de control de flujo de Golang
- Estructuras de datos y algoritmos (implementación de Golang) (4) Una introducción simple a las estructuras y métodos de Golang
- Estructura de datos y algoritmo (implementación de Golang) (5) Una introducción simple a la interfaz de Golang
- Estructura de datos y algoritmo (implementación de Golang) (6) Una introducción simple a la concurrencia, las rutinas y los canales de Golang
- Estructura de datos y algoritmo (implementación de Golang) (7) Una introducción simple a la biblioteca estándar de Golang
- Estructura de datos y algoritmo (implementación de Golang) (8.1) Conocimientos básicos-Prefacio
- Estructura de datos y algoritmo (implementación de Golang) (8.2) Conocimiento básico: dividir y conquistar y recurrir
- Estructura y algoritmo de datos (implementación de Golang) (9) Complejidad del algoritmo de conocimiento básico y símbolo progresivo
- Estructura de datos y algoritmo (implementación de Golang) (10) Conocimientos básicos: el método principal de complejidad del algoritmo
- Estructuras de datos y algoritmos (implementación de Golang) (11) Estructuras de datos comunes-Prefacio
- Estructuras de datos y algoritmos (implementación de Golang) (12) Listas enlazadas de estructuras de datos comunes
- Estructuras de datos y algoritmos (implementación de Golang) (13) Estructuras de datos comunes: matrices de longitud variable
- Estructuras de datos y algoritmos (implementación de Golang) (14) Estructuras de datos comunes: pila y cola
- Estructuras de datos y algoritmos (implementación de Golang) (15) Lista de estructuras de datos comunes
- Estructuras de datos y algoritmos (implementación de Golang) (16) Estructuras de datos comunes-Diccionario
- Estructuras de datos y algoritmos (implementación de Golang) (17) Estructuras de datos comunes: árboles
- Estructura de datos y algoritmo (implementación de Golang) (18) Algoritmo de clasificación-Prefacio
- Estructura de datos y algoritmo (implementación de Golang) (19) Algoritmo de clasificación-clasificación de burbujas
- Estructura de datos y algoritmo (implementación de Golang) (20) Clasificación de algoritmos de selección
- Estructura de datos y algoritmo (implementación de Golang) (21) Clasificación de algoritmo de inserción
- Estructura de datos y algoritmo (implementación de Golang) (22) Algoritmo de clasificación-Clasificación de Hill
- Estructura de datos y algoritmo (implementación de Golang) (23) Clasificación de algoritmo de fusión
- Estructura de datos y algoritmo (implementación de Golang) (24) Algoritmo de clasificación prioritario y clasificación de montón
- Estructura de datos y algoritmo (implementación de Golang) (25) Algoritmo de clasificación: clasificación rápida
- Estructura de datos y algoritmo (implementación de Golang) (26) Tabla de algoritmo de búsqueda de hash
- Estructura de datos y algoritmo (implementación de Golang) (27) Árbol de búsqueda binario de algoritmo de búsqueda
- Estructura y algoritmo de datos (implementación de Golang) (28) Árbol de algoritmo de búsqueda-AVL
- Estructura de datos y algoritmo (implementación de Golang) (29) Árbol de algoritmo de búsqueda-2-3 y árbol rojo-negro inclinado a la izquierda
- Estructura de datos y algoritmo (implementado por Golang) (30) Árbol de algoritmo de búsqueda-2-3-4 y árbol rojo-negro ordinario