Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied in der Syntax zwischen Golang und Java

Der Unterschied in der Syntax zwischen Golang und Java

王林
王林Original
2019-12-07 10:45:222698Durchsuche

Der Unterschied in der Syntax zwischen Golang und Java

Variablendeklaration und -zuweisung

Java:

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

Go:

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

1. Variablendeklaration :var ist ein Schlüsselwort, Format: var Variablenname Variablentyp

2. Variablendeklaration und -zuweisung: := Symbol unterstützt die automatische Ableitung des Typs

Ausnahmebehandlung

Java:

Der Unterschied in der Syntax zwischen Golang und Java

Go:

Der Unterschied in der Syntax zwischen Golang und Java

Go-Ausnahmen werden als Funktionsrückgabewerte verwendet. Beurteilen Sie die Ausnahme, indem Sie beurteilen, ob ein Fehler vorliegt. (Kann keine Ausnahmen wie Java auslösen)

Gos if-Anweisung unterstützt Anfangsbedingungen, das heißt, führen Sie zuerst die Anweisung nach if (vor dem Semikolon) aus und führen Sie dann die Urteilsanweisung nach dem Semikolon aus. Diese Anweisung wird häufig verwendet zur Ausnahmebehandlung.

Die geschweiften Klammern von go müssen am Ende der Zeile stehen. Die go-Funktion oder -Variable ist „öffentlich“, wobei der erste Buchstabe in Großbuchstaben und „privat“ in Kleinbuchstaben geschrieben ist.

Parameterübergabe

Der Unterschied in der Syntax zwischen Golang und Java

Die Änderungsfunktion ist das übergebene Objekt. Wenn die Funktion aufgerufen wird, wird eine Kopie davon übergeben Objekt wird erhalten.

Die Funktion „change2“ ist ein übergebener Zeiger. Wenn die Funktion aufgerufen wird, erhalten Sie einen Zeiger auf das geänderte Objekt.

go geht nicht als Referenz weiter

Polymorphismus

Dieses Beispiel ist etwas lang, es ist ein Problem, den Bereich für beide Kreise zu finden und Rechtecke Typ

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())
}

Tutorial zu verwandten Artikeln:Golang-Tutorial

Das obige ist der detaillierte Inhalt vonDer Unterschied in der Syntax zwischen Golang und Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn