Home >Backend Development >Golang >The difference in syntax between golang and java

The difference in syntax between golang and java

王林
王林Original
2019-12-07 10:45:222767browse

The difference in syntax between golang and java

Variable declaration and assignment

Java:

int i;    // 声明
int j = 1; // 声明+赋值

Go:

var i int    // 声明
i := 1        // 声明+赋值

1. Variable declaration :var is a keyword, format: var variable name variable type

2. Variable declaration and assignment: := symbol supports automatic derivation of type

Exception handling

Java:

The difference in syntax between golang and java

Go:

The difference in syntax between golang and java

Go exceptions are used as function return values , by judging whether there is an error, to judge the exception. (Cannot throw exceptions like Java)

Go's if statement supports initial conditions, that is, first execute the statement after if (before the semicolon), and then execute the judgment statement after the semicolon. This statement is often used for exception handling.

The curly braces of go must be at the end of the line. The go function or variable is "public", with the first letter in uppercase, and "private" in lowercase.

Parameter passing

The difference in syntax between golang and java

The change function is the object passed. When the function is called, a copy of the object will be obtained. .

The change2 function is a passed pointer. When the function is called, a pointer to the changed object will be obtained.

go does not pass by reference

Polymorphism

This example is a bit long, it is a problem of finding the area, for circles and rectangles Type

java:

java.lang.Math;public class Polymorphism{
        public static class Rectangle implements Areable{    //矩形                double width;
                double height;
                public Rectangle(double width,double height){   
                        this.width = width;
                        this.height = height;}
                public double area(){
                        return width * height;}
        }
        public static class Circle implements Areable{ // 圆形                double radius;
                public Circle(double radius){
                        this.radius = radius;}
                public double area(){
                        return radius * radius * Math.PI;}
        }        public static interface Areable{
              double area();
        }public static void main(String[] args){
      Areable arear = new Rectangle(5.0,5.0);
      Areable areac = new Circle(2.5);
      System.out.println(arear.area());
      System.out.println(areac.area());
    }
}

Go:

package main
import (
        "fmt"
        "math"
)
type Rectangle struct {    // 矩形        
    width float64        
    height float64
}
type Circle struct {    // 圆形
    radius float64
}
type Areable interface{    // 接口:一组method签名的组合,通过interface来定义对象的一组行为。
//  只要是实现了interface中的所有的method的结构体,就可以认为是这个interface的实例,Duck typing        
area() float64
}
func (r Rectangle) /* 函数的接受者Receiver */ area() float64 /* 返回值类型*/ {    
        return r.width * r.height
}
func (c Circle) /* 函数的另一个接受者Receiver */  area() float64 /* 返回值类型*/{  
        return c.radius * c.radius * math.Pi
}
func main(){
        ra := Rectangle{5,5}
        ca := Circle{2.5}
        fmt.Println(ra.area())
        fmt.Println(ca.area())
}

Related article tutorial:golang tutorial

The above is the detailed content of The difference in syntax between golang and java. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn