投稿日:
2019年3月22日
最終更新日:
【初心者向け備忘録】Java脳視点で感じたGo言語とJava言語の記述方法/書き方/コーディング規則の違いまとめを随時更新していくお【プログラミング独学】
YouTubeも見てね♪
【最新機種】GoPro hero11 Black
最新機種でVlogの思い出を撮影しよう!
ペヤング ソースやきそば 120g×18個
とりあえず保存食として買っておけば間違いなし!
レッドブル エナジードリンク 250ml×24本
翼を授けよう!
モンスターエナジー 355ml×24本 [エナジードリンク]
脳を活性化させるにはこれ!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド
Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!
サンディスク microSD 128GB
スマホからSwitchまで使える大容量MicroSDカード!
目次
Java脳がGoを覚えた際に引っかかった点をまとめてみよう
筆者はもっぱらのJava人間です。
システム屋になってからはJavaをメイン武器に構えながら、HTML/JavaScript/CSSなどをちょこちょこ触っていました。
そして、最近はGo言語の勉強をさらっと初めて見たのですが、意外と言語のルールが異なっている部分を見つけました。
今回は、そんな独学の中で見つけたJava言語とGo言語の違いを備忘録としてまとめてみようと思います。
記事にまとめる事で誰かが救われるのならやってやるぜ・・・!(果たしていつまで続くか)
という事で、こちらの記事は勉強の進度によって随時更新していこうと思うので、思い出したら見に来てくださいw。
ちなみに、Go Tour をベースに勉強をしているのでこちらを見てもらえると、より理解出来ると思います。
プログラミング言語Go Tour ( Go言語基礎文法最速マスター ) へようこそ! Go Tour は複数の章で構成されています。 左上の A Tour of Go から辿ることができます。A Tour of Go
筆者が気になった記法の違いまとめ
セミコロン
行末のセミコロンの扱いに関して差異があります。
java
Javaの場合は、行末にセミコロンが無いとコンパイルエラーとなります。
厳密でうね。
1
2
|
System.out.println("セミコロン有り");
System.out.println("セミコロン無し")//コンパイルエラー
|
Go
Goの場合は、セミコロンを入れても良いが、省略することも出来ます。
ほとんどの人は省略していますね。
1
2
|
fmt.Println("セミコロン有り");
fmt.Println("セミコロン無し")
|
パッケージ定義
プログラムのパッケージ定義方法について差異があります。
今回はサンプルとして、jp.blogenist.sample.hoge
に定義するとします。
java
Javaの場合は、フルパッケージを記述する必要があります。
1 |
package jp.blogenist.sample.hoge;
|
Go
Goの場合は、パッケージパスの最後の階層のみを記述する必要があります。
1 |
package hoge
|
import方法
プログラムのimport方法について差異があります。
java
Javaの場合は、複数読み込みたい場合はそれぞれimport句から記述する必要があります。
1
2
3
4
5
6
|
package jp.blogenist.sample.hoge;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
|
Go
Goの場合は、factoredインポートステートメント( factored import statement )と呼ばれる方法で、パッケージのインストールをグループ化する事が可能です。
1
2
3
4
5
6
|
package hoge
import (
"fmt"
"math"
)
|
また、Javaのようにそれぞれimport句から書くことも出来ますが、基本的にはfactoredインポートステートメントが主流となっているようです。
関数の引数
関数の引数定義方法について差異があります。
java
Javaの場合は、型名 変数名[,…]の順番で定義していきます。
1
2
3
|
public Person create( String name, Integer age){
...
}
|
Go
Goの場合は、変数名 型名[,...]
の順番で定義していきます。
1
2
3
|
func (name string, age integer) create() Person {
...
}
|
終わりに
Java言語が出来る人はGo言語が出来る、逆もまた然り。と、いろいろな人がよく言ってます。
言語ごとの記述方法の差異さえ抑えてしまえば、なんだかいけそうな気がしているので、頑張って勉強してみようと思います!
皆さんも、Go言語を覚えてみてはいかがでしょうか♪