变量声明与赋值
Java:
int i; // 声明
int j = 1; // 声明+赋值
Go:
var i int // 声明
i := 1 // 声明+赋值
1、变量声明:var是关键字,花样:var 变量称号 变量范例
2、变量声明与赋值: := 标记支撑自动推导范例
非常处置惩罚
Java:
Go:
go的非常是做为函数返回值的,经由过程推断是不是存在error,来推断非常。 (不能够像Java一样抛出非常)
go的if语句支撑初始条件,即先实行if以后的语句(分号之前),再实行分号以后的推断语句,此语句常常用于非常处置惩罚。
go的大括号必需在行末go函数或许变量为”公有”,首字母大写,”私有”则小写。
参数通报
change函数是通报的对象,函数挪用的时刻,会拿到对象的拷贝。
change2函数是通报的指针,函数挪用的时刻,会拿到一个指向改对象的指针。
go没有援用通报
多态
此例有点长,是一个求面积的问题,针对与圆形和矩形两种范例
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语法上的区分的细致内容,更多请关注ki4网别的相干文章!
收藏 | 0