変数の宣言と代入
Java:
int i; // 声明 int j = 1; // 声明+赋值
Go:
var i int // 声明 i := 1 // 声明+赋值
1. 変数の宣言:var はキーワードです。形式: var 変数名 変数タイプ
2。変数の宣言と代入::= シンボルはタイプの自動派生をサポートします
例外処理
Java:
Go:
Go 例外は関数の戻り値として使用されます。エラーの有無を判断し、例外を判断します。 (Java のような例外はスローできません)
Go の if 文は、if 以降 (セミコロンの前) に文を実行し、セミコロン以降に判定文を実行するという初期条件をサポートしており、よく使用されます。例外処理用。
go の中括弧は行末になければなりません。go 関数または変数は「public」で、最初の文字は大文字で、「private」は小文字です。
パラメータの受け渡し
変更関数は渡されるオブジェクトです。関数が呼び出されるとき、オブジェクトが取得されます。
change2 関数は渡されたポインタです。関数が呼び出されると、変更されたオブジェクトへのポインタが取得されます。
go は参照渡しではありません
ポリモーフィズム
この例は少し長いですが、円と円の領域を見つける問題です。長方形 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()) }
関連記事チュートリアル:golang チュートリアル
以上がgolangとjavaの構文の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。