Maison > développement back-end > Golang > La différence de syntaxe entre Golang et Java

La différence de syntaxe entre Golang et Java

王林
Libérer: 2019-12-07 10:45:22
original
2736 Les gens l'ont consulté

La différence de syntaxe entre Golang et Java

Déclaration et affectation des variables

Java :

int i;    // 声明
int j = 1; // 声明+赋值
Copier après la connexion

Go :

var i int    // 声明
i := 1        // 声明+赋值
Copier après la connexion

1. :var est un mot-clé, format : var nom de la variable type de variable

2. Déclaration et affectation des variables : := le symbole prend en charge la dérivation automatique du type

Gestion des exceptions

Java :

La différence de syntaxe entre Golang et Java

Go :

La différence de syntaxe entre Golang et Java

Les exceptions Go sont utilisées comme valeurs de retour de fonction, en jugeant s'il y a une erreur, pour juger de l'exception. (Impossible de lancer des exceptions comme Java)

L'instruction Go if prend en charge les conditions initiales, c'est-à-dire qu'il faut d'abord exécuter l'instruction après if (avant le point-virgule), puis exécuter l'instruction de jugement après le point-virgule. pour la gestion des exceptions.

Les accolades de go doivent être en fin de ligne. La fonction ou variable go est "publique", avec la première lettre en majuscule, et "privée" en minuscule.

Passage de paramètres

La différence de syntaxe entre Golang et Java

La fonction de changement est l'objet passé Lorsque la fonction est appelée, une copie du. l'objet sera obtenu.

La fonction change2 est un pointeur passé Lorsque la fonction est appelée, vous obtiendrez un pointeur vers l'objet modifié.

aller ne passe pas par référence

Polymorphisme

Cet exemple est un peu long, c'est un problème de trouver l'aire, pour les deux cercles et des rectangles Tapez

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());
    }
}
Copier après la connexion

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())
}
Copier après la connexion

Tutoriel d'article connexe :tutoriel golang

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal