Java vs GoLang

GoLang

Concurrency

Basic async invocation Java CompletableFuture.runAsync(() -> System.out.println("Hello async!")); for (int i=0; i<5; i++) { System.out.print("Hey! "); Thread.sleep(100); } // Hey! Hello async! // Hey! Hey! Hey! Hey! GoLang go fmt.Println("Hello async!") for i:=0; i<5; i++ { fmt.Print("Hey! ") time.Sleep(100 * time.Millisecond) } // Hey! Hello async! // Hey! Hey! Hey! Hey!

Control Flow

Conditionals Java if (x < y) { return x; } else { return y; } GoLang if x < y { return x } else { return y } If with a statement Java int five = 5; int four = 2+2; if (four < five) { return five; } GoLang five := 5 if four := 2+2; four < five { return five } Switch expression Java String language = "French"; switch(language) { case "Spanish": System.

Data Structures

Arrays Java String cars[] = new String[5] { "Toyota", "Mercedes", "BMW", "Volkswagen", "Skoda" }; System.out.println(cars[0]); // Toyota GoLang cars := [5]string{"Toyota", "Mercedes", "BMW", "Volkswagen", "Skoda"} fmt.Println(cars[0]) // Toyota For-each over an array Java for (String car : cars) { System.out.println(strTemp); } GoLang for _, car := range cars { fmt.Println("My car is: ", car) } Multidimensional array Java String langs[][] = new String[][]{{"C#", "C", "Python"}, {"Java", "Scala", "Perl"}, {"C++", "Go", "HTML"}}; GoLang langs := [3][3]string{{"C#", "C", "Python"}, {"Java", "Scala", "Perl"}, {"C++", "Go", "HTML"}} For-each over a multi-dimensional array Java for (String[] arr : langs) { for (String lang : arr) { System.

Methods

Function declaration Java int multiply(int a, int b) { return a*b; } GoLang func multiply(a, b int) int { return a*b } Multiple results Java class Person { String name; int age; Person(String name, String age) { this.name = name; this.age = age; } } Person getNameAndAge() { return new Person("John", 18) } Person person = getNameAndAge(); var name = person.name; var age = person.age; GoLang func getNameAndAge() (string, int){ return "John", 18 } var name, age = getNameAndAge() Error handling Java try { int i = Integer.

Structures

Basic structure Java public class Student { public String name; public int age; public Student(String name, String age) { this.name = name; this.age = age; } } GoLang type Student struct { Name string Age int } Structure initialization Java var student = new Student("John", 18); GoLang student := Student{"John", 18} Optional arguments in initialization Java public class Student { private String name; private int age; public Student(String name) { this.