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:
Go:
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 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!