7月 042016
 

これから暇なときにでもGo言語の記事を書いていこうと思ってその1です。
まだまだ知らないことだらけで勉強という意味でも書いていく感じです。

確認環境

  • Windowsなど
  • Go 1.6.2

このシリーズの対象者

  • PHPをある程度理解している人。
  • 他の言語をかじったことがある人など。
  • どの言語も触ったことがない人向けではありません。

Go言語とは

Go言語はGoogleが2009年に開発したプログラミング言語です。
コンパイラ言語であり、現在も開発/リリースが行われています。(2016/07/04時点)
主に近い言語としてはC言語が近いと言えるでしょうか。

PHPとGoの大まかな比較

PHPユーザーがGoを勉強していく上で、大きく違ってくる点を書いていきます。

Goの方が圧倒的に速い

そりゃあそうでしょ

Goはコンパイラ言語である

Goはコンパイラ言語です。そして静的型付け言語であります。
PHPのようなインタプリタ言語、動的型付け言語ではありません。

構文が異なる

そりゃあそうでしょって話ですが。。。
大きい所で言うと、最後にセミコロン(;)がつかない所は大きい違いでしょうか。if文やfor文等に括弧がいらない所も結構異なる所ですね。

a := 1
if a == 1 {
    fmt.Println("true")
} else {
    fmt.Println("false")
}

また、セミコロンが無いので制御構文の開始時の括弧は同じ行である必要があります。

if a == 1
{ // これは駄目
    fmt.Println("true")
}

ほかにもカンマや演算子を入れる位置もほぼ決まっています。
PHPと比べると、お固めの言語と言えるでしょうね。

クラスは存在しない

Go言語にはインターフェースは存在しますが、クラスは存在しません。
クラスが存在しないものの、構造体がクラスのような役割を果たしてくれます。

テストファイルを置く場所が異なる

PHPだとユニットテストなどをする際にPHPUnitを使うのが一般的かなーと思います。大抵の場合、testsフォルダ等を作成してその中にテストファイルを置いていくと思います。
しかし、Goの場合のテストファイルの配置方法は元あるファイルと同じ場所に配置する必要があります。(一応配置しなくてもテストは回せるのですがカバレッジとか出なかったです)
またファイル名も決まっていて、テストしたいファイル名+_test.goとなります。

最後に

こんなところでしょうか。
vol.2では基本的な部分を紹介していく感じになりますかねー。
ではでは~。

Pocket

 Posted by at 12:41 AM

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


*