3
1

More than 3 years have passed since last update.

Javaで飯食ってるエンジニアがGolangを学んでみる~序章~

Last updated at Posted at 2021-09-16

とりあえずJavaとの差を意識してメモ書きのように書いてみる。Go→Javaの順
序章と書いたが続くかは不明。。。

社会人になり、弊社に入社してからJavaを学んだのだが、
その時は学生時代に研究で利用していたFortranとの対比で基本的な文法は学んで言った記憶があった。
(やり方がいいかは別)

今回もJavaとGoがいずれも静的型付け言語であることを利用し、
同じことをそれぞれの文法で書いたらどうなるかを実際にメモ書きしてみた感じ。

※Editorじゃないのでミスっていたらすみませんコメントで教えてください
※全部はやってません

コンソール出力


import "fmt"

func main(){

    var human string = "TOM"

    fmt.Printf("%sは人間です",human)
}


public static void main(String[] args){

    String human = "TOM";

    System.out.printf("%sは人間です",human);

}

if文


import "fmt"

func main(){

    var score int = 100
    if score == 80 {
        fmt.Println("素晴らしい")
    }else if score >= 60 {
        fmt.Println("よくできました")
    }else {
        fmt.Println("頑張りましょう")
    }
}


public static void main(String[] args){

    int score = 100;
    if(score == 80) {
        System.out.println("素晴らしい");
    }else if(score >= 60){
        System.out.println("よくできました");
    }else {
        System.out.println("頑張りましょう");
    }
}

for文

import "fmt"

func main(){

    for i := 1 ; i <= 100 ; i++{
        fmt.Println(i)
    }

}

public static void main(String[] args){

    for(int i = 1 ; i <= 100 ; i++){
        System.out.println(i);
    }

}

乱数

import "fmt"
import "math/rand"

func main(){

    fmt.Println(rand.Intn(10))

}
import java.util.Random;

public static void main(String[] args){

    System.out.println(new Random().nextInt(10));

}

完全な乱数

import "fmt"
import "math/rand"
import "time"

func main(){

    rand.Seed(time.Now().Unix())
    fmt.Println(rand.Intn(10))

}

コンソール入力

import "fmt"

func main(){
    var input string

    fmt.Scan(&input)
    fmt.Println(input)

}


import java.util.Scanner;

public static void main(String[] args){


    Scanner sc = new Scanner(System.in);
    String input = sc.nextLine();

    System.out.println(input);

}

引数のあるメソッド

import "fmt"

func main(){
    hoge("あいう")
}

func hoge(fuga string){

    fmt.Println(fuga)

}

public static void main(String[] args){
    hoge("あいう")
}

private void hoge(String fuga){

    System.out.println(fuga);

}

戻り値のあるメソッド

import "fmt"

func main(){
    hogehoge := hoge("あいう")

    fmt.Println(hogehoge)
}

func hoge(fuga string) string{

    return fuga

}

public static void main(String[] args){

    String hogehoge = hoge("あいう")

    System.out.println(hogehoge);

}

private String hoge(String fuga){

    return fuga;

}

ポインタ型

import "fmt"

func main(){

    var hogehoge string = "あいう"
    var hogehogePtr *string =&hogehoge

    fmt.Println(hogehoge)
    fmt.Println(hogehogePtr)
}

出力結果
>あいう
>0xc420010220

ポインタ型を利用した値の更新

import "fmt"

func main(){

    var hogehoge string = "あいう"

    fmt.Println(hogehoge)

    change(&hogehoge)

    fmt.Println(hogehoge)

}

func change(hogehogePtr *string){

    *hogehogePtr = "かきく"

}

出力結果
>あいう
>かきく

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1