Heim Backend-Entwicklung Golang Teilen Sie einige einführende Go-Kenntnisse für PHPer

Teilen Sie einige einführende Go-Kenntnisse für PHPer

Aug 19, 2020 pm 01:17 PM
go golang

werde ich einige für PHP vorbereitete Teilen Sie einige einführende Go-Kenntnisse für PHPer-Einstiegskenntnisse weitergeben. Ich hoffe, Freunden zu helfen, die es brauchen!

Vor kurzem habe ich mit der Entwicklung einer internen Befehlszeilenschnittstellenanwendung für mein Arbeitsteam begonnen. Meine bevorzugte Programmiersprache ist PHP, aber ich wollte das Programm in einer Sprache erstellen, die auf jeder Plattform läuft, ohne dass ein Interpreter installiert werden muss. Ich möchte auch, dass die Anwendung zur einfacheren Verteilung und Installation in einer Binärdatei enthalten ist. Ich habe Teilen Sie einige einführende Go-Kenntnisse für PHPer heruntergeladen und war erstaunt, wie einfach es zu erlernen war und wie produktiv ich in kurzer Zeit war. Das prozedurale Programmiermodell von Teilen Sie einige einführende Go-Kenntnisse für PHPer passte wirklich zu unserer Einstellung als PHP-Entwickler und ich konnte die Anwendung schnell zum Laufen bringen. Es gibt jedoch einige offensichtliche Unterschiede zu PHP, daher wollte ich diese mit anderen PHP-Entwicklern teilen, die Teilen Sie einige einführende Go-Kenntnisse für PHPer lernen möchten.

Teilen Sie einige einführende Go-Kenntnisse für PHPerEmpfohlen: „

Teilen Sie einige einführende Go-Kenntnisse für PHPerlang-Tutorial

MacOS

Ich verwende einen Mac, also habe ich Teilen Sie einige einführende Go-Kenntnisse für PHPer über Homebrew installiert: . Wenn Sie Homebrew nicht auf Ihrem Mac installiert haben, kann ich es wärmstens empfehlen.

Windows & Linuxbrew install go

Teilen Sie einige einführende Go-Kenntnisse für PHPers offizielle Website bietet Download-Ressourcen für jedes Betriebssystem, einschließlich des „Next Next“-Installationsprogramms für Windows-Systeme.

Start

In Teilen Sie einige einführende Go-Kenntnisse für PHPer wird der Quellcode aller Projekte in einem Verzeichnis gespeichert: GOPATH. Standardmäßig ist GOPATH unter go im Home-Verzeichnis festgelegt, z. B. . Es gibt Verzeichnisse und

Verzeichnisse unter GOPATH. Das

-Verzeichnis speichert die von Ihnen heruntergeladenen Abhängigkeiten in Binärform. Sie können das /Users/andrewdavis/go-Verzeichnis zu Ihrer PATH-Umgebungsvariablen hinzufügen. Sie können die Datei .bashrc/.zshrc im Terminal bearbeiten und bin hinzufügen. Um Teilen Sie einige einführende Go-Kenntnisse für PHPerlang zu lernen, können Sie den Befehl src Teilen Sie einige einführende Go-Kenntnisse für PHPer Programming Guide herunterladen im Terminal ausführen. bin lädt den Quellcode und die Binärdateien der in den Parametern angegebenen Drittanbieter-Abhängigkeiten herunter. Jetzt können Sie bin im Terminal ausführen und es startet einen Webserver und öffnet automatisch den Browserzugriff. export PATH=$PATH:$(go env GOPATH)/bingo get golang.org/x/tour/gotourUm ein Projekt zu erstellen, erstellen Sie ein Verzeichnis unter go get in Ihrem GOPATH: gotour. Öffnen Sie diesen Ordner

und erstellen Sie eine Datei namens main,

. Geben Sie in dieser Datei Folgendes ein: src

package main

import "fmt"

func main() {
  fmt.Println("Hello world!")
}
Nach dem Login kopieren
mkdir -p $GOPATH/src/helloworldDer Ausgangspunkt für alle Teilen Sie einige einführende Go-Kenntnisse für PHPer-Programme ist die Hauptfunktion im Hauptpaket. Als nächstes können Sie cd $GOPATH/src/helloworld ausführen, um das Programm auszuführen. Sie können auch touch main.go ausführen und das Programm wird kompiliert und im

-Verzeichnis abgelegt, sodass Sie

im Terminal ausführen können und Ihr Code ausgeführt wird. go run main.gogo installbinHauptunterschiede zu PHPhelloworld

Da Sie nun ein Projekt eingerichtet haben, können Sie mit der Erkundung der verschiedenen Teilen Sie einige einführende Go-Kenntnisse für PHPer-Funktionen beginnen. Das Erste, was Ihnen auffallen wird, ist, dass in Teilen Sie einige einführende Go-Kenntnisse für PHPer keine Semikolons erforderlich sind. Das Ende einer Anweisung wird durch eine neue Zeile erkannt. Hier sind einige weitere Unterschiede, deren Verständnis ich einige Zeit gebraucht habe:

Variablen

Teilen Sie einige einführende Go-Kenntnisse für PHPer ist eine statische und stark typisierte Sprache, sodass jeder Variablen ein Typ zugewiesen ist. Variablen innerhalb einer Funktion werden mit zugewiesen, wodurch der Variablen automatisch der Typ zugewiesen wird: Um eine Variable zu erstellen, die keine Daten festlegt, oder um eine Variable außerhalb einer Funktion zu erstellen, müssen Sie das Schlüsselwort var verwenden:

.

:=name := "Andrew" // name 现在是一个字符串If-Anweisung var name string

Die if-Anweisung funktioniert auf die gleiche Weise wie in PHP, erfordert jedoch keine Klammern, um die Bedingung zu umgeben. Dieser Unterschied hat mich beim Lesen des Teilen Sie einige einführende Go-Kenntnisse für PHPer-Codes jedoch zunächst verwirrt lesbar.

package main

import "fmt"

func main() {
  value := false
  if value {
    fmt.Println("Value is true")
  } else {
    fmt.Println("Value is false")
  }
}
Nach dem Login kopieren

Pakete vs. Namespaces

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

Strings

在 Teilen Sie einige einführende Go-Kenntnisse für PHPer 中,所有字符串必须用双引号包围。Teilen Sie einige einführende Go-Kenntnisse für PHPer 中的一个单引号值代表一个 rune (一个 Unicode字符)。习惯性的,我会使用单引号声明字符串,因为这是 PHP 中的常见做法。使用双引号声明字符串会需要一段时间调整。

var name = "Andrew"
var copy = '©'
Nach dem Login kopieren

Structs vs Classes

Teilen Sie einige einführende Go-Kenntnisse für PHPer 没有像 PHP 的 class 语法. 取而代之的, 它使用结构体对自定义数据结构建模. 你可以像下面这样声明一个结构体:

package main

type Cup struct {
  name string
  color string
  volume int
}
Nach dem Login kopieren

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

func (c Cup) nameAndColor() string {
  return c.name + ": " + c.color
}
Nach dem Login kopieren

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

func main() {
  c := Cup{name: "Solo", color: "Red", volume: 12}
  c.nameAndColor() // 返回 "Solo: Red"
}
Nach dem Login kopieren

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

func (c *Cup) crush() {
  c.volume = 0
}
Nach dem Login kopieren

错误

在 Teilen Sie einige einführende Go-Kenntnisse für PHPer 中,错误并不会视为异常。没有 trycatch 的机制。作为替代,如果发生错误,需要从函数内返回错误。Teilen Sie einige einführende Go-Kenntnisse für 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")
  }
}
Nach dem Login kopieren

Final

当然,Teilen Sie einige einführende Go-Kenntnisse für PHPer 还有很多东西要学,但是希望这能帮助你更好的开始。学习 Teilen Sie einige einführende Go-Kenntnisse für PHPer 的很好的资源有很多。对我最有帮助的是 Teilen Sie einige einführende Go-Kenntnisse für PHPer 文档 和 Teilen Sie einige einführende Go-Kenntnisse für PHPer By Example。如果你有任何想法或问题,请留下评论。 谢谢阅读!

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

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

Das obige ist der detaillierte Inhalt vonTeilen Sie einige einführende Go-Kenntnisse für PHPer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie kann ich Dateien mit Golang sicher lesen und schreiben? Wie kann ich Dateien mit Golang sicher lesen und schreiben? Jun 06, 2024 pm 05:14 PM

Das sichere Lesen und Schreiben von Dateien in Go ist von entscheidender Bedeutung. Zu den Richtlinien gehören: Überprüfen von Dateiberechtigungen, Schließen von Dateien mithilfe von Verzögerungen, Validieren von Dateipfaden, Verwenden von Kontext-Timeouts. Das Befolgen dieser Richtlinien gewährleistet die Sicherheit Ihrer Daten und die Robustheit Ihrer Anwendungen.

Wie konfiguriere ich den Verbindungspool für die Golang-Datenbankverbindung? Wie konfiguriere ich den Verbindungspool für die Golang-Datenbankverbindung? Jun 06, 2024 am 11:21 AM

Wie konfiguriere ich Verbindungspooling für Go-Datenbankverbindungen? Verwenden Sie den DB-Typ im Datenbank-/SQL-Paket, um eine Datenbankverbindung zu erstellen. Legen Sie MaxOpenConns fest, um die maximale Anzahl gleichzeitiger Verbindungen festzulegen. Legen Sie ConnMaxLifetime fest, um den maximalen Lebenszyklus der Verbindung festzulegen.

Wie verwende ich Gomega für Behauptungen in Golang-Unit-Tests? Wie verwende ich Gomega für Behauptungen in Golang-Unit-Tests? Jun 05, 2024 pm 10:48 PM

So verwenden Sie Gomega für Behauptungen beim Golang-Unit-Testing. Beim Golang-Unit-Testing ist Gomega eine beliebte und leistungsstarke Assertionsbibliothek, die umfangreiche Assertionsmethoden bereitstellt, damit Entwickler Testergebnisse einfach überprüfen können. Installieren Sie Gomegagoget-ugithub.com/onsi/gomega. Verwenden Sie Gomega für Behauptungen. Hier sind einige häufige Beispiele für die Verwendung von Gomega für Behauptungen: 1. Import von Gleichheitszusicherungen „github.com/onsi/gomega“ funcTest_MyFunction(t*testing.T){

Golang Framework vs. Go Framework: Vergleich der internen Architektur und externen Funktionen Golang Framework vs. Go Framework: Vergleich der internen Architektur und externen Funktionen Jun 06, 2024 pm 12:37 PM

Der Unterschied zwischen dem GoLang-Framework und dem Go-Framework spiegelt sich in der internen Architektur und den externen Funktionen wider. Das GoLang-Framework basiert auf der Go-Standardbibliothek und erweitert deren Funktionalität, während das Go-Framework aus unabhängigen Bibliotheken besteht, um bestimmte Zwecke zu erreichen. Das GoLang-Framework ist flexibler und das Go-Framework ist einfacher zu verwenden. Das GoLang-Framework hat einen leichten Leistungsvorteil und das Go-Framework ist skalierbarer. Fall: Gin-Gonic (Go-Framework) wird zum Erstellen der REST-API verwendet, während Echo (GoLang-Framework) zum Erstellen von Webanwendungen verwendet wird.

Wie speichere ich JSON-Daten in einer Datenbank in Golang? Wie speichere ich JSON-Daten in einer Datenbank in Golang? Jun 06, 2024 am 11:24 AM

JSON-Daten können mithilfe der gjson-Bibliothek oder der json.Unmarshal-Funktion in einer MySQL-Datenbank gespeichert werden. Die gjson-Bibliothek bietet praktische Methoden zum Parsen von JSON-Feldern, und die Funktion json.Unmarshal erfordert einen Zieltypzeiger zum Unmarshalieren von JSON-Daten. Bei beiden Methoden müssen SQL-Anweisungen vorbereitet und Einfügevorgänge ausgeführt werden, um die Daten in der Datenbank beizubehalten.

Was sind die Best Practices für die Fehlerbehandlung im Golang-Framework? Was sind die Best Practices für die Fehlerbehandlung im Golang-Framework? Jun 05, 2024 pm 10:39 PM

Best Practices: Erstellen Sie benutzerdefinierte Fehler mit klar definierten Fehlertypen (Fehlerpaket). Stellen Sie weitere Details bereit. Protokollieren Sie Fehler ordnungsgemäß. Geben Sie Fehler korrekt weiter und vermeiden Sie das Ausblenden oder Unterdrücken. Wrappen Sie Fehler nach Bedarf, um Kontext hinzuzufügen

Wie löst man häufige Sicherheitsprobleme im Golang-Framework? Wie löst man häufige Sicherheitsprobleme im Golang-Framework? Jun 05, 2024 pm 10:38 PM

So beheben Sie häufige Sicherheitsprobleme im Go-Framework Angesichts der weit verbreiteten Einführung des Go-Frameworks in der Webentwicklung ist die Gewährleistung seiner Sicherheit von entscheidender Bedeutung. Im Folgenden finden Sie eine praktische Anleitung zur Lösung häufiger Sicherheitsprobleme mit Beispielcode: 1. SQL-Injection Verwenden Sie vorbereitete Anweisungen oder parametrisierte Abfragen, um SQL-Injection-Angriffe zu verhindern. Beispiel: constquery="SELECT*FROMusersWHEREusername=?"stmt,err:=db.Prepare(query)iferr!=nil{//Handleerror}err=stmt.QueryR

Wie finde ich den ersten Teilstring, der mit einem regulären Golang-Ausdruck übereinstimmt? Wie finde ich den ersten Teilstring, der mit einem regulären Golang-Ausdruck übereinstimmt? Jun 06, 2024 am 10:51 AM

Die FindStringSubmatch-Funktion findet die erste Teilzeichenfolge, die mit einem regulären Ausdruck übereinstimmt: Die Funktion gibt ein Segment zurück, das die passende Teilzeichenfolge enthält, wobei das erste Element die gesamte übereinstimmende Zeichenfolge und die nachfolgenden Elemente einzelne Teilzeichenfolgen sind. Codebeispiel: regexp.FindStringSubmatch(text,pattern) gibt einen Ausschnitt übereinstimmender Teilzeichenfolgen zurück. Praktischer Fall: Es kann verwendet werden, um den Domänennamen in der E-Mail-Adresse abzugleichen, zum Beispiel: email:="user@example.com", pattern:=@([^\s]+)$, um die Übereinstimmung des Domänennamens zu erhalten [1].

See all articles