次の列は、## PHPer のための Go の入門知識を共有するlang Language Tutorial # columnのPHPERの入門的な知識を共有します。困っている友人に役立つことを願っています!
#最近、私は作業チーム用の内部コマンド ライン インターフェイス アプリケーションの開発を開始しました。私が主に選択しているプログラミング言語は 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()
来执行这个函数。任何以小写字母开头的名称只能在包内使用。不需要 private
或 public
进行声明。
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 の入門知識を共有する 中,错误并不会视为异常。没有 try
或 catch
的机制。作为替代,如果发生错误,需要从函数内返回错误。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 サイトの他の関連記事を参照してください。