go语言和java语法上有什么区别
变量声明与赋值
十年的青海网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整青海建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“青海网站设计”,“青海网站推广”以来,每个客户项目都认真落实执行。
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与java语法上的区别的详细内容,更多请关注创新互联其它相关文章!
当前标题:go语言和java语法上有什么区别
当前URL:http://myzitong.com/article/pcsgho.html