検索
ホームページバックエンド開発GolangPHPer のための Go の入門知識を共有する

次の列は、## PHPer のための Go の入門知識を共有するlang Language Tutorial # columnのPHPERの入門的な知識を共有します。困っている友人に役立つことを願っています!

PHPer のための Go の入門知識を共有する

#最近、私は作業チーム用の内部コマンド ライン インターフェイス アプリケーションの開発を開始しました。私が主に選択しているプログラミング言語は PHP ですが、インタプリタをインストールせずにどのプラットフォームでも実行できる言語でプログラムを作成したいと考えていました。また、配布とインストールを容易にするために、アプリケーションをバイナリ ファイルに自己完結型にしておきたいと考えています。 PHPer のための Go の入門知識を共有する をダウンロードしたところ、学習がいかに簡単で、短期間で生産性が向上したかに驚きました。 PHPer のための Go の入門知識を共有する の手続き型プログラミング モデルは、PHP 開発者の考え方に非常に適しており、アプリケーションをすぐに起動して実行することができました。ただし、PHP とは明らかな違いがいくつかあるので、PHPer のための Go の入門知識を共有する を学びたい他の PHP 開発者とそれらを共有したいと思いました。

推奨: "golang チュートリアル"

MacOS

Mac を使用しているため、Homebrew を使用してインストールしました。 brew install go 。 Mac に Homebrew がインストールされていない場合は、Homebrew を強くお勧めします。

Windows と Linux

PHPer のための Go の入門知識を共有する の公式 Web サイトには、Windows システム用の「Next Next」インストーラーを含む、各オペレーティング システムのダウンロード リソースがあります。

Start

PHPer のための Go の入門知識を共有する では、すべてのプロジェクトのソース コードが 1 つのディレクトリ GOPATH に保存されます。デフォルトでは、GOPATH はホーム ディレクトリの go の下に設定されます (/Users/andrewdavis/go など)。 GOPATH 配下には bin ディレクトリと src ディレクトリがあります。 bin ディレクトリには、ダウンロードした依存関係のバイナリ形式が保存されます。bin ディレクトリを PATH 環境変数に追加できます。ターミナルでファイル .bashrc/.zshrc を編集し、export PATH=$PATH:$(go env GOPATH)/bin を追加できます。 PHPer のための Go の入門知識を共有するlang を学習するには、ターミナルでコマンド go get golang.org/x/tour/gotour を実行して、PHPer のための Go の入門知識を共有する プログラミング ガイドをダウンロードできます。go get は、次のソース コードをダウンロードします。パラメータで指定されたサードパーティの依存関係とバイナリ ファイル。これで、ターミナルで gotour を実行できるようになります。Web サーバーが起動し、ブラウザー アクセスが自動的に開きます。

プロジェクトを作成するには、GOPATH の src の下にディレクトリを作成します: mkdir -p $GOPATH/src/helloworld。このフォルダー cd $GOPATH/src/helloworld を開き、main という名前のファイル touch main.go を作成します。このファイルに次のように入力します。

package main

import "fmt"

func main() {
  fmt.Println("Hello world!")
}

すべての PHPer のための Go の入門知識を共有する プログラムの開始点は、メイン パッケージの main 関数です。次に、go run main.go を実行してプログラムを実行します。 go install を実行すると、プログラムがコンパイルされて bin ディレクトリに配置されるため、ターミナルで helloworld を実行するとコードが実行されます。 。

PHP との主な違い

プロジェクトのセットアップが完了したので、PHPer のための Go の入門知識を共有する のさまざまな機能を試し始めることができます。最初に気づくのは、PHPer のための Go の入門知識を共有する ではセミコロンが必要ないということです。ステートメントの終わりは改行によって検出されます。以下に、理解するのに時間がかかったいくつかの違いを示します。

変数

PHPer のための Go の入門知識を共有する は静的で厳密に型指定された言語であるため、すべての変数に割り当てがあります。タイプ。関数内の変数は、:= を使用して割り当てられ、変数に型が自動的に割り当てられます: name := "Andrew" // name は文字列 になります。データを設定しないか、関数の外で変数を作成するには、var キーワード: var name string を使用する必要があります。

If ステートメント

if ステートメントは PHP と同じように機能しますが、条件を括弧で囲む必要はありません。この違いが最初は混乱を招くのではないかと思いました。 PHPer のための Go の入門知識を共有する でコードを読むとき。ただし、これによりコードが読みやすくなると思います。

package main

import "fmt"

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

パッケージと名前空間

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

Strings

在 PHPer のための Go の入門知識を共有する 中,所有字符串必须用双引号包围。PHPer のための Go の入門知識を共有する 中的一个单引号值代表一个 rune (一个 Unicode字符)。习惯性的,我会使用单引号声明字符串,因为这是 PHP 中的常见做法。使用双引号声明字符串会需要一段时间调整。

var name = "Andrew"
var copy = '©'

Structs vs Classes

PHPer のための Go の入門知識を共有する 没有像 PHP 的 class 语法. 取而代之的, 它使用结构体对自定义数据结构建模. 你可以像下面这样声明一个结构体:

package main

type Cup struct {
  name string
  color string
  volume int
}

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

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

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

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

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

func (c *Cup) crush() {
  c.volume = 0
}

错误

在 PHPer のための Go の入門知識を共有する 中,错误并不会视为异常。没有 trycatch 的机制。作为替代,如果发生错误,需要从函数内返回错误。PHPer のための Go の入門知識を共有する 支持一个函数返回多个值。如果调用的函数可能会返回错误,你必须检测这个错误是否存在,然后处理这个错误。

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")
  }
}

Final

当然,PHPer のための Go の入門知識を共有する 还有很多东西要学,但是希望这能帮助你更好的开始。学习 PHPer のための Go の入門知識を共有する 的很好的资源有很多。对我最有帮助的是 PHPer のための Go の入門知識を共有する 文档 和 PHPer のための Go の入門知識を共有する By Example。如果你有任何想法或问题,请留下评论。 谢谢阅读!

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

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

以上がPHPer のための Go の入門知識を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はlearnkuで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Golang vs. C:コードの例とパフォーマンス分析Golang vs. C:コードの例とパフォーマンス分析Apr 15, 2025 am 12:03 AM

Golangは迅速な発展と同時プログラミングに適していますが、Cは極端なパフォーマンスと基礎となる制御を必要とするプロジェクトにより適しています。 1)Golangの並行性モデルは、GoroutineとChannelを介した同時性プログラミングを簡素化します。 2)Cのテンプレートプログラミングは、一般的なコードとパフォーマンスの最適化を提供します。 3)Golangのごみ収集は便利ですが、パフォーマンスに影響を与える可能性があります。 Cのメモリ管理は複雑ですが、コントロールは問題ありません。

Golangの影響:速度、効率、シンプルさGolangの影響:速度、効率、シンプルさApr 14, 2025 am 12:11 AM

speed、効率、およびシンプル性をspeedsped.1)speed:gocompilesquilesquicklyandrunseffictient、理想的なlargeprojects.2)効率:等系dribribraryreducesexexternaldedenciess、開発効果を高める3)シンプルさ:

CとGolang:パフォーマンスが重要な場合CとGolang:パフォーマンスが重要な場合Apr 13, 2025 am 12:11 AM

Cは、ハードウェアリソースと高性能の最適化が必要なシナリオにより適していますが、Golangは迅速な開発と高い並行性処理が必要なシナリオにより適しています。 1.Cの利点は、ハードウェア特性と高い最適化機能に近いものにあります。これは、ゲーム開発などの高性能ニーズに適しています。 2.Golangの利点は、その簡潔な構文と自然な並行性サポートにあり、これは高い並行性サービス開発に適しています。

Golang in Action:実際の例とアプリケーションGolang in Action:実際の例とアプリケーションApr 12, 2025 am 12:11 AM

Golangは実際のアプリケーションに優れており、そのシンプルさ、効率性、並行性で知られています。 1)同時プログラミングはゴルチンとチャネルを通じて実装されます。2)柔軟なコードは、インターフェイスと多型を使用して記述されます。3)ネット/HTTPパッケージを使用したネットワークプログラミングを簡素化、4)効率的な同時クローラーを構築する、5)ツールと最高の実践を通じてデバッグと最適化。

Golang:Goプログラミング言語が説明しましたGolang:Goプログラミング言語が説明しましたApr 10, 2025 am 11:18 AM

GOのコア機能には、ガベージコレクション、静的リンク、並行性サポートが含まれます。 1. GO言語の並行性モデルは、GoroutineとChannelを通じて効率的な同時プログラミングを実現します。 2.インターフェイスと多型は、インターフェイスメソッドを介して実装されているため、異なるタイプを統一された方法で処理できます。 3.基本的な使用法は、関数定義と呼び出しの効率を示しています。 4。高度な使用法では、スライスは動的なサイズ変更の強力な機能を提供します。 5.人種条件などの一般的なエラーは、Getest Raceを通じて検出および解決できます。 6.パフォーマンス最適化Sync.Poolを通じてオブジェクトを再利用して、ゴミ収集圧力を軽減します。

Golangの目的:効率的でスケーラブルなシステムの構築Golangの目的:効率的でスケーラブルなシステムの構築Apr 09, 2025 pm 05:17 PM

GO言語は、効率的でスケーラブルなシステムの構築においてうまく機能します。その利点には次のものがあります。1。高性能:マシンコードにコンパイルされ、速度速度が速い。 2。同時プログラミング:ゴルチンとチャネルを介してマルチタスクを簡素化します。 3。シンプルさ:簡潔な構文、学習コストとメンテナンスコストの削減。 4。クロスプラットフォーム:クロスプラットフォームのコンパイル、簡単な展開をサポートします。

SQLソートのステートメントによる順序の結果がランダムに見えるのはなぜですか?SQLソートのステートメントによる順序の結果がランダムに見えるのはなぜですか?Apr 02, 2025 pm 05:24 PM

SQLクエリの結果の並べ替えについて混乱しています。 SQLを学習する過程で、しばしば混乱する問題に遭遇します。最近、著者は「Mick-SQL Basics」を読んでいます...

テクノロジースタックの収束は、テクノロジースタック選択のプロセスにすぎませんか?テクノロジースタックの収束は、テクノロジースタック選択のプロセスにすぎませんか?Apr 02, 2025 pm 05:21 PM

テクノロジースタックの収束とテクノロジーの選択の関係ソフトウェア開発におけるテクノロジーの選択、テクノロジースタックの選択と管理は非常に重要な問題です。最近、一部の読者が提案しています...

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール