とりあえず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 = "かきく"
}
出力結果
>あいう
>かきく