Maison développement back-end Golang Partagez quelques connaissances d'introduction à Go pour PHPer

Partagez quelques connaissances d'introduction à Go pour PHPer

Aug 19, 2020 pm 01:17 PM
go golang

Vous trouverez ci-dessous

Tutoriel sur le langage Partagez quelques connaissances dintroduction à Go pour PHPerlang colonne pour partager quelques connaissances d'entrée Partagez quelques connaissances dintroduction à Go pour PHPer préparées pour Phper, j'espère que cela sera utile aux amis dans le besoin !

Partagez quelques connaissances dintroduction à Go pour PHPer

Récemment, j'ai commencé à développer une application d'interface de ligne de commande interne pour mon équipe de travail. Mon principal langage de programmation de prédilection est PHP, mais je souhaitais créer le programme dans un langage qui fonctionnerait sur n'importe quelle plate-forme sans avoir à installer un interpréteur. J'aimerais également que l'application soit autonome dans un fichier binaire pour une distribution et une installation plus faciles. J'ai téléchargé Partagez quelques connaissances dintroduction à Go pour PHPer et j'ai été étonné de voir à quel point il était facile d'apprendre et à quel point je suis devenu productif en peu de temps. Le modèle de programmation procédurale de Partagez quelques connaissances dintroduction à Go pour PHPer convenait vraiment à notre état d'esprit de développeur PHP, et j'ai pu rendre l'application opérationnelle rapidement. Il existe cependant des différences évidentes avec PHP, je voulais donc les partager avec d'autres développeurs PHP qui souhaitent apprendre Partagez quelques connaissances dintroduction à Go pour PHPer.

Recommandé : "

Tutoriel Partagez quelques connaissances dintroduction à Go pour PHPerlang"

MacOS

J'utilise un Mac, donc installez via Homebrew :

. Si Homebrew n’est pas installé sur votre Mac, je le recommande vivement. brew install go

Windows et Linux

Le site officiel de Partagez quelques connaissances dintroduction à Go pour PHPer propose des ressources de téléchargement pour chaque système d'exploitation, y compris le programme d'installation « Next Next » pour les systèmes Windows.

Démarrer

Dans Partagez quelques connaissances dintroduction à Go pour PHPer, le code source de tous les projets est enregistré dans un seul répertoire : GOPATH. Par défaut, GOPATH est défini sous go dans le répertoire personnel, tel que

. Il existe des répertoires /Users/andrewdavis/go et bin sous GOPATH. Le répertoire src stocke les dépendances que vous avez téléchargées sous forme binaire. Vous pouvez ajouter le répertoire bin à votre variable d'environnement PATH. Vous pouvez éditer le fichier .bashrc/.zshrc dans le terminal et ajouter bin. Pour apprendre Partagez quelques connaissances dintroduction à Go pour PHPerlang, vous pouvez exécuter la commande export PATH=$PATH:$(go env GOPATH)/bin dans le terminal pour télécharger le guide de programmation Partagez quelques connaissances dintroduction à Go pour PHPer go get golang.org/x/tour/gotour téléchargera le code source et les fichiers binaires des dépendances tierces spécifiées dans les paramètres. Vous pouvez maintenant exécuter go get dans le terminal et il démarrera un serveur Web et ouvrira automatiquement l'accès au navigateur. gotour

Pour créer un projet, créez un répertoire sous

dans le GOPATH : src. Ouvrez ce dossier mkdir -p $GOPATH/src/helloworld et créez un dossier nommé principal, cd $GOPATH/src/helloworld. Dans ce fichier, entrez ce qui suit : touch main.go

package main

import "fmt"

func main() {
  fmt.Println("Hello world!")
}
Copier après la connexion

Le point de départ de tous les programmes Partagez quelques connaissances dintroduction à Go pour PHPer est la fonction principale du package principal. Ensuite, vous pouvez exécuter

pour exécuter le programme. Vous pouvez également exécuter go run main.go et le programme sera compilé et placé dans le répertoire go install, vous pourrez donc exécuter bin dans le terminal et il exécutera votre code. helloworld

Différences clés par rapport à PHP

Maintenant que vous avez configuré un projet, vous pouvez commencer à explorer les différentes fonctionnalités de Partagez quelques connaissances dintroduction à Go pour PHPer. La première chose que vous remarquerez est que les points-virgules ne sont pas obligatoires dans Partagez quelques connaissances dintroduction à Go pour PHPer. La fin d'une instruction est détectée par une nouvelle ligne. Voici quelques différences supplémentaires qui m'ont pris du temps à comprendre :

Variables

Partagez quelques connaissances dintroduction à Go pour PHPer est un langage statique et fortement typé, donc chaque variable a une affectation. Donnez-lui le taper. Les variables dans les fonctions sont affectées à l'aide de

, qui attribue automatiquement le type à la variable : := Pour créer une variable qui ne définit aucune donnée ou pour créer une variable en dehors de la fonction, vous devez utiliser le mot-clé var : <. 🎜>. name := "Andrew" // name 现在是一个字符串var name string

Instruction If

L'instruction if fonctionne de la même manière qu'en PHP, mais elle ne nécessite pas de parenthèses pour entourer la condition. Cette différence m'a d'abord fait penser à Confused when. lire le code dans Partagez quelques connaissances dintroduction à Go pour PHPer. Cependant, je pense que cela rend le code plus lisible.

package main

import "fmt"

func main() {
  value := false
  if value {
    fmt.Println("Value is true")
  } else {
    fmt.Println("Value is false")
  }
}
Copier après la connexion

Packages vs Namespaces

Partagez quelques connaissances dintroduction à Go pour PHPer 使用术语 package 来为其内容创建命名空间。如果你的 Partagez quelques connaissances dintroduction à Go pour PHPer 代码中有一个名为 controllers 的文件夹,在这个文件夹下的所有文件都需要以 package controllers 开头。想要在其他包内导入控制器,你需要使用 import "helloworld/controllers"。包内任何以大写字母开头的名称都可以用在其他包中。 如果在 controllers 中有一个名为func HelloWorld () 的函数,你可以在 controllers 导入之后使用 controllers.HelloWorld() 来执行这个函数。任何以小写字母开头的名称只能在包内使用。不需要 privatepublic 进行声明。

Strings

在 Partagez quelques connaissances dintroduction à Go pour PHPer 中,所有字符串必须用双引号包围。Partagez quelques connaissances dintroduction à Go pour PHPer 中的一个单引号值代表一个 rune (一个 Unicode字符)。习惯性的,我会使用单引号声明字符串,因为这是 PHP 中的常见做法。使用双引号声明字符串会需要一段时间调整。

var name = "Andrew"
var copy = &#39;©&#39;
Copier après la connexion

Structs vs Classes

Partagez quelques connaissances dintroduction à Go pour PHPer 没有像 PHP 的 class 语法. 取而代之的, 它使用结构体对自定义数据结构建模. 你可以像下面这样声明一个结构体:

package main

type Cup struct {
  name string
  color string
  volume int
}
Copier après la connexion

你可以通过在函数名称之前引用结构体来为该结构体添加方法。

func (c Cup) nameAndColor() string {
  return c.name + ": " + c.color
}
Copier après la connexion

然后您可以通过在结构体名称后用大括号传递其初始值来实例化一个结构体. 使用 . 来调用结构体的方法.

func main() {
  c := Cup{name: "Solo", color: "Red", volume: 12}
  c.nameAndColor() // 返回 "Solo: Red"
}
Copier après la connexion

若要创建一个方法修改结构体实例, 该方法必须引用指向结构体的指针:

func (c *Cup) crush() {
  c.volume = 0
}
Copier après la connexion

错误

在 Partagez quelques connaissances dintroduction à Go pour PHPer 中,错误并不会视为异常。没有 trycatch 的机制。作为替代,如果发生错误,需要从函数内返回错误。Partagez quelques connaissances dintroduction à Go pour PHPer 支持一个函数返回多个值。如果调用的函数可能会返回错误,你必须检测这个错误是否存在,然后处理这个错误。

package main

import "fmt"

func GetName(name string) (string, error) {
  if name == "Bob" {
    return "", fmt.Errorf("Name cannot be Bob")
  }

  return name, nil
}

func main() {
  name, err := GetName("Bob")
  if err != nil {
    fmt.Println("Uh-oh an error has occurred")
  }
}
Copier après la connexion

Final

当然,Partagez quelques connaissances dintroduction à Go pour PHPer 还有很多东西要学,但是希望这能帮助你更好的开始。学习 Partagez quelques connaissances dintroduction à Go pour PHPer 的很好的资源有很多。对我最有帮助的是 Partagez quelques connaissances dintroduction à Go pour PHPer 文档 和 Partagez quelques connaissances dintroduction à Go pour PHPer By Example。如果你有任何想法或问题,请留下评论。 谢谢阅读!

原文地址:https://dev.to/restoreddev/introduction-to-go-for-php-developers-33ko

译文地址:https://learnku.com/go/t/46321

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment lire et écrire des fichiers en toute sécurité avec Golang ? Comment lire et écrire des fichiers en toute sécurité avec Golang ? Jun 06, 2024 pm 05:14 PM

Lire et écrire des fichiers en toute sécurité dans Go est crucial. Les directives incluent : Vérification des autorisations de fichiers Fermeture de fichiers à l'aide de reports Validation des chemins de fichiers Utilisation de délais d'attente contextuels Le respect de ces directives garantit la sécurité de vos données et la robustesse de vos applications.

Comment configurer le pool de connexions pour la connexion à la base de données Golang ? Comment configurer le pool de connexions pour la connexion à la base de données Golang ? Jun 06, 2024 am 11:21 AM

Comment configurer le pool de connexions pour les connexions à la base de données Go ? Utilisez le type DB dans le package base de données/sql pour créer une connexion à la base de données ; définissez MaxOpenConns pour contrôler le nombre maximum de connexions simultanées ; définissez MaxIdleConns pour définir le nombre maximum de connexions inactives ; définissez ConnMaxLifetime pour contrôler le cycle de vie maximum de la connexion ;

Comparaison des avantages et des inconvénients du framework Golang Comparaison des avantages et des inconvénients du framework Golang Jun 05, 2024 pm 09:32 PM

Le framework Go se distingue par ses hautes performances et ses avantages en matière de concurrence, mais il présente également certains inconvénients, tels qu'être relativement nouveau, avoir un petit écosystème de développeurs et manquer de certaines fonctionnalités. De plus, les changements rapides et les courbes d’apprentissage peuvent varier d’un cadre à l’autre. Le framework Gin est un choix populaire pour créer des API RESTful en raison de son routage efficace, de sa prise en charge JSON intégrée et de sa puissante gestion des erreurs.

Comment utiliser gomega pour les assertions dans les tests unitaires Golang ? Comment utiliser gomega pour les assertions dans les tests unitaires Golang ? Jun 05, 2024 pm 10:48 PM

Comment utiliser Gomega pour les assertions dans les tests unitaires Golang Dans les tests unitaires Golang, Gomega est une bibliothèque d'assertions populaire et puissante qui fournit des méthodes d'assertion riches afin que les développeurs puissent facilement vérifier les résultats des tests. Installez Gomegagoget-ugithub.com/onsi/gomega Utilisation de Gomega pour les assertions Voici quelques exemples courants d'utilisation de Gomega pour les assertions : 1. Importation d'assertion d'égalité "github.com/onsi/gomega" funcTest_MyFunction(t*testing.T){

Quelles sont les meilleures pratiques pour la gestion des erreurs dans le framework Golang ? Quelles sont les meilleures pratiques pour la gestion des erreurs dans le framework Golang ? Jun 05, 2024 pm 10:39 PM

Meilleures pratiques : créer des erreurs personnalisées à l'aide de types d'erreurs bien définis (package d'erreurs) fournir plus de détails consigner les erreurs de manière appropriée propager correctement les erreurs et éviter de masquer ou de supprimer les erreurs Wrap si nécessaire pour ajouter du contexte

Comment enregistrer les données JSON dans la base de données dans Golang ? Comment enregistrer les données JSON dans la base de données dans Golang ? Jun 06, 2024 am 11:24 AM

Les données JSON peuvent être enregistrées dans une base de données MySQL à l'aide de la bibliothèque gjson ou de la fonction json.Unmarshal. La bibliothèque gjson fournit des méthodes pratiques pour analyser les champs JSON, et la fonction json.Unmarshal nécessite un pointeur de type cible pour désorganiser les données JSON. Les deux méthodes nécessitent la préparation d'instructions SQL et l'exécution d'opérations d'insertion pour conserver les données dans la base de données.

Golang Framework vs Go Framework : comparaison de l'architecture interne et des fonctionnalités externes Golang Framework vs Go Framework : comparaison de l'architecture interne et des fonctionnalités externes Jun 06, 2024 pm 12:37 PM

La différence entre le framework GoLang et le framework Go se reflète dans l'architecture interne et les fonctionnalités externes. Le framework GoLang est basé sur la bibliothèque standard Go et étend ses fonctionnalités, tandis que le framework Go se compose de bibliothèques indépendantes pour atteindre des objectifs spécifiques. Le framework GoLang est plus flexible et le framework Go est plus facile à utiliser. Le framework GoLang présente un léger avantage en termes de performances et le framework Go est plus évolutif. Cas : gin-gonic (framework Go) est utilisé pour créer l'API REST, tandis qu'Echo (framework GoLang) est utilisé pour créer des applications Web.

Comment résoudre les problèmes de sécurité courants dans le framework Golang ? Comment résoudre les problèmes de sécurité courants dans le framework Golang ? Jun 05, 2024 pm 10:38 PM

Comment résoudre les problèmes de sécurité courants dans le framework Go Avec l'adoption généralisée du framework Go dans le développement Web, il est crucial d'assurer sa sécurité. Ce qui suit est un guide pratique pour résoudre les problèmes de sécurité courants, avec un exemple de code : 1. Injection SQL Utilisez des instructions préparées ou des requêtes paramétrées pour empêcher les attaques par injection SQL. Par exemple : constquery="SELECT*FROMusersWHEREusername=?"stmt,err:=db.Prepare(query)iferr!=nil{//Handleerror}err=stmt.QueryR

See all articles