Déclaration et affectation des variables
Java :
int i; // 声明 int j = 1; // 声明+赋值
Go :
var i int // 声明 i := 1 // 声明+赋值
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 :
Go :
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 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()); } }
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()) }
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!