溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

go語言和java語法上有什么區(qū)別

發(fā)布時間:2020-06-18 11:47:21 來源:億速云 閱讀:334 作者:鴿子 欄目:編程語言

變量聲明與賦值

Java:

int i;    // 聲明
int j = 1; // 聲明+賦值

Go:

var i int    // 聲明
i := 1        // 聲明+賦值

1、變量聲明:var是關(guān)鍵字,格式:var 變量名稱 變量類型

2、變量聲明與賦值: := 符號支持自動推導(dǎo)類型

異常處理

Java:

go語言和java語法上有什么區(qū)別

Go:

go語言和java語法上有什么區(qū)別

go的異常是做為函數(shù)返回值的,通過判斷是否存在error,來判斷異常。 (不能夠像Java一樣拋出異常)

go的if語句支持初始條件,即先執(zhí)行if之后的語句(分號之前),再執(zhí)行分號之后的判斷語句,此語句經(jīng)常用于異常處理。

go的大括號必須在行末go函數(shù)或者變量為”公有”,首字母大寫,”私有”則小寫。

參數(shù)傳遞

go語言和java語法上有什么區(qū)別

change函數(shù)是傳遞的對象,函數(shù)調(diào)用的時候,會拿到對象的拷貝。

change2函數(shù)是傳遞的指針,函數(shù)調(diào)用的時候,會拿到一個指向改對象的指針。

go沒有引用傳遞

多態(tài)

此例有點長,是一個求面積的問題,針對與圓形和矩形兩種類型

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來定義對象的一組行為。
//  只要是實現(xiàn)了interface中的所有的method的結(jié)構(gòu)體,就可以認(rèn)為是這個interface的實例,Duck typing        
area() float64
}
func (r Rectangle) /* 函數(shù)的接受者Receiver */ area() float64 /* 返回值類型*/ {    
        return r.width * r.height
}
func (c Circle) /* 函數(shù)的另一個接受者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與java語法上的區(qū)別的詳細(xì)內(nèi)容,更多請關(guān)注億速云其它相關(guān)文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI