Maison  >  Article  >  développement back-end  >  Excellents projets linguistiques Go sélectionnés et recommandés

Excellents projets linguistiques Go sélectionnés et recommandés

王林
王林original
2024-03-23 21:57:04848parcourir

Excellents projets linguistiques Go sélectionnés et recommandés

En tant que langage de programmation, le langage Go a été largement utilisé dans divers projets. Il est apprécié par de nombreux développeurs pour son efficacité, sa rapidité et sa simplicité. Cet article recommandera à tout le monde d’excellents projets en langage Go et fournira des exemples de code spécifiques.

Gorilla Mux

[Gorilla Mux](https://github.com/gorilla/mux) est un puissant routeur HTTP en langage Go. Il prend en charge la correspondance d'URL basée sur des expressions régulières, ainsi que des règles de correspondance d'itinéraire flexibles. Ce qui suit est un exemple simple qui montre comment utiliser Gorilla Mux pour créer un serveur HTTP simple et définir plusieurs routes :

package main

import (
    "net/http"

    "github.com/gorilla/mux"
)

func main() {
    r := mux.NewRouter()

    r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("Welcome to our website!"))
    })

    r.HandleFunc("/products/{category}/{id:[0-9]+}", func(w http.ResponseWriter, r *http.Request) {
        vars := mux.Vars(r)
        w.Write([]byte("Category: " + vars["category"] + ", ID: " + vars["id"]))
    })

    http.Handle("/", r)
    http.ListenAndServe(":8000", nil)
}

Gorm

[Gorm](https://gorm.io/) est une excellente bibliothèque ORM en langage Go pour simplifier l’interaction avec les bases de données relationnelles. Il prend en charge une variété de bases de données, notamment MySQL, PostgreSQL, SQLite, etc. Ce qui suit est un exemple simple montrant comment utiliser Gorm pour se connecter à une base de données MySQL et effectuer des opérations simples d'ajout, de suppression, de modification et de requête :

package main

import (
    "fmt"

    "gorm.io/driver/mysql"
    "gorm.io/gorm"
)

type Product struct {
    ID    uint
    Name  string
    Price float64
}

func main() {
    dsn := "username:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil {
        fmt.Println("Failed to connect to database")
        return
    }

    db.AutoMigrate(&Product{})

    // Create
    db.Create(&Product{Name: "Apple", Price: 1.5})

    // Read
    var product Product
    db.First(&product, 1) // find product with id 1
    fmt.Println(product)

    // Update
    db.Model(&product).Update("Price", 2.0)

    // Delete
    db.Delete(&product)
}

Gin

[Gin](https://gin-gonic.com/) est un framework Web HTTP léger offrant d'excellentes performances et une facilité d'utilisation. Voici un exemple simple montrant comment utiliser Gin pour créer un serveur HTTP simple et définir plusieurs routes :

package main

import (
    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.Default()

    r.GET("/", func(c *gin.Context) {
        c.String(200, "Welcome to our website!")
    })

    r.GET("/hello/:name", func(c *gin.Context) {
        name := c.Param("name")
        c.String(200, "Hello "+name)
    })

    r.POST("/login", func(c *gin.Context) {
        username := c.PostForm("username")
        password := c.PostForm("password")
        c.JSON(200, gin.H{"username": username, "password": password})
    })

    r.Run(":8000")
}

Les projets recommandés ci-dessus sont tous des outils très pratiques dans le processus de développement du langage Go. J'espère qu'ils pourront être utiles à ceux qui le souhaitent. apprennent ou les développeurs utilisant le langage Go fournissent de l'aide. Si vous êtes intéressé, vous pouvez approfondir davantage les fonctionnalités et l’utilisation de ces éléments.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn