ホームページ  >  記事  >  バックエンド開発  >  golangとjavaの構文の違い

golangとjavaの構文の違い

王林
王林オリジナル
2019-12-07 10:45:222726ブラウズ

golangとjavaの構文の違い

変数の宣言と代入

Java:

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

Go:

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

1. 変数の宣言:var はキーワードです。形式: var 変数名 変数タイプ

2。変数の宣言と代入::= シンボルはタイプの自動派生をサポートします

例外処理

Java:

golangとjavaの構文の違い

Go:

golangとjavaの構文の違い

Go 例外は関数の戻り値として使用されます。エラーの有無を判断し、例外を判断します。 (Java のような例外はスローできません)

Go の if 文は、if 以降 (セミコロンの前) に文を実行し、セミコロン以降に判定文を実行するという初期条件をサポートしており、よく使用されます。例外処理用。

go の中括弧は行末になければなりません。go 関数または変数は「public」で、最初の文字は大文字で、「private」は小文字です。

パラメータの受け渡し

golangとjavaの構文の違い

変更関数は渡されるオブジェクトです。関数が呼び出されるとき、オブジェクトが取得されます。

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。