Paquetes en Golang

Los paquetes son la parte más poderosa del lenguaje Go. El propósito de un paquete es diseñar y mantener una gran cantidad de programas agrupando funciones relacionadas en unidades individuales para que puedan ser fáciles de mantener y comprender e independientes de los otros programas del paquete. Esta modularidad les permite compartir y reutilizar. En el lenguaje Go, cada paquete se define con un nombre diferente y ese nombre está cerca de su funcionalidad como paquete de «strings» y contiene métodos y funciones que solo se relacionan con strings.

Puntos importantes

1. Rutas de importación: en el lenguaje Go, cada paquete está definido por una string única y esta string se conoce como ruta de importación. Con la ayuda de una ruta de importación, puede importar paquetes en su programa. Por ejemplo:

import "fmt"

Esta declaración indica que está importando un paquete fmt en su programa. La ruta de importación de paquetes es globalmente única. Para evitar conflictos entre la ruta de los paquetes que no sean la biblioteca estándar, la ruta del paquete debe comenzar con el nombre de dominio de Internet de la organización propietaria o que aloja el paquete. Por ejemplo:

import "geeksforgeeks.com/example/strings"

2. Declaración del paquete: en el lenguaje Go, la declaración del paquete siempre está presente al comienzo del archivo fuente y el propósito de esta declaración es determinar el identificador predeterminado para ese paquete cuando otro paquete lo importa. Por ejemplo:

package main

3. Declaración de importación: La declaración de importación viene inmediatamente después de la declaración del paquete. El archivo fuente de Go contiene cero o más declaraciones de importación y cada declaración de importación especifica la ruta de uno o más paquetes entre paréntesis. Por ejemplo:

// Importing single package
import "fmt"

// Importing multiple packages
import(
"fmt"
"strings"
"bytes"
) 

Cuando importa un paquete en su programa, puede acceder a los miembros de ese paquete. Por ejemplo, tenemos un paquete llamado «sort», por lo que cuando importa este paquete en su programa, puede acceder a las funciones sort.Float64s(), sort.SearchStrings(), etc. de ese paquete.

4. Importación en blanco: en la programación de Go, a veces importamos algunos paquetes en nuestro programa, pero no los usamos en nuestro programa. Cuando ejecuta este tipo de programas que contienen paquetes no utilizados, el compilador dará un error. Entonces, para evitar este error, usamos un identificador en blanco antes del nombre del paquete. Por ejemplo:

import _ "strings"

Se conoce como importación en blanco. Se usa en muchas o algunas ocasiones cuando el programa principal puede habilitar las funciones opcionales proporcionadas por el espacio en blanco importando paquetes adicionales en tiempo de compilación.

5. Paquetes anidados: en el lenguaje Go, puede crear un paquete dentro de otro paquete simplemente creando un subdirectorio. Y el paquete anidado puede importarse como el paquete raíz. Por ejemplo:

import "math/cmplx"

Aquí, el paquete matemático es el paquete principal y el paquete cmplx es el paquete anidado.

6. A veces, algunos paquetes pueden tener los mismos nombres, pero la ruta de ese tipo de paquetes siempre es diferente. Por ejemplo, tanto los paquetes matemáticos como criptográficos contienen un paquete denominado rand, pero la ruta de este paquete es diferente, es decir, matemática/rand y criptografía/rand.

7. En la programación Go, ¿por qué siempre el paquete principal está presente en la parte superior del programa? Porque el paquete principal le dice a go build que debe activar el enlazador para hacer un archivo ejecutable.

Dar nombres a los paquetes

En lenguaje Go, cuando nombras un paquete siempre debes seguir los siguientes puntos:

  • Cuando crea un paquete, el nombre del paquete debe ser corto y simple. Por ejemplo, las strings, la hora, la bandera, etc. son paquetes de biblioteca estándar.
  • El nombre del paquete debe ser descriptivo e inequívoco.
  • Siempre trate de evitar elegir nombres que se usen comúnmente o que se usen para variables relativas locales.
  • El nombre del paquete generalmente en forma singular. A veces, algunos paquetes se nombran en plural, como strings, bytes, búferes, etc. Porque para evitar conflictos con las palabras clave.
  • Evite siempre nombres de paquetes que ya tengan otras connotaciones. Por ejemplo:

Ejemplo:

// Go program to illustrate the
// concept of packages
// Package declaration
package main
  
// Importing multiple packages
import (
    "bytes"
    "fmt"
    "sort"
)
  
func main() {
  
    // Creating and initializing slice
    // Using shorthand declaration
    slice_1 := []byte{'*', 'G', 'e', 'e', 'k', 's', 'f',
        'o', 'r', 'G', 'e', 'e', 'k', 's', '^', '^'}
    slice_2 := []string{"Gee", "ks", "for", "Gee", "ks"}
  
    // Displaying slices
    fmt.Println("Original Slice:")
    fmt.Printf("Slice 1 : %s", slice_1)
    fmt.Println("\nSlice 2: ", slice_2)
  
    // Trimming specified leading
    // and trailing Unicode points
    // from the given slice of bytes
    // Using Trim function
    res := bytes.Trim(slice_1, "*^")
    fmt.Printf("\nNew Slice : %s", res)
  
    // Sorting slice 2
    // Using Strings function
    sort.Strings(slice_2)
    fmt.Println("\nSorted slice:", slice_2)
}

Producción:

Original Slice:
Slice 1 : *GeeksforGeeks^^
Slice 2:  [Gee ks for Gee ks]

New Slice : GeeksforGeeks
Sorted slice: [Gee Gee for ks ks]

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *