go语言和java语法上有什么区别

变量声明与赋值

Java:

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

Go:

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

1、变量声明:var是关键字,格式:var 变量名称 变量类型

2、变量声明与赋值: := 符号支持自动推导类型

异常处理

Java:

go语言和java语法上有什么区别

Go:

go语言和java语法上有什么区别

go的异常是做为函数返回值的,通过判断是否存在error,来判断异常。 (不能够像Java一样抛出异常)

go的if语句支持初始条件,即先执行if之后的语句(分号之前),再执行分号之后的判断语句,此语句经常用于异常处理。

go的大括号必须在行末go函数或者变量为”公有”,首字母大写,”私有”则小写。

参数传递

go语言和java语法上有什么区别

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语法上的区别的详细内容,更多请关注北单博客其它相关文章!

原创文章,作者:ITIGL,如若转载,请注明出处:https://www.beidanyezhu.com/a/26444.html

(0)
ITIGL的头像ITIGL
上一篇 2025-01-03
下一篇 2025-01-03

相关推荐

  • go语言有哪些优点

    go语言的优点:1、可直接编译成机器码,不依赖其他库;2、静态类型语言,但是有动态语言的感觉,写起来的效率很高;3、语言层面支持并发;4、内置runtime,支持垃圾回收;5、简单…

  • go语言中make和new有哪些区别

    区别:在go语言中,make和new都是内存的分配(堆上),但是make只用于slice、map以及channel的初始化(非零值);而new用于类型的内存分配,并且内存置为零。m…

  • go语言的开发工具有哪些

    go语言开发工具:Gogland、Eclipse、LiteIDE、KomodoIDE、Atom、Brackets、Visual Studio Code、Cloud9、CodeEnv…

  • go语言和python有哪些区别

    区别:1、Python是一种基于面向对象编程的多范式,命令式和函数式编程语言;Go是一种基于并发编程范式的过程编程语言。2、Python是动态类型语言,Go是静态类型语言。3、Py…

  • go语言是不是开源的

    go是开源语言。Go也称为Golang,是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的开源编程语言,它能让构造简单、可靠且高效的软件变得容易 Go也称为G…

  • go语言和Java语言有哪些区别

    区别:1、Go不允许函数重载,必须具有方法和函数的唯一名称;java允许函数重载。2、Java默认允许多态,Go没有。3、Go代码可以自动扩展到多个核心;而Java并不总是具有足够…

  • go语言如何实现string转float

    go语言实现string转float的方法:首先创建一个go示例文件;然后定义一个字符串;最后通过“v1, err:=strconv.ParseFloat(v, 32)”方式将st…

  • Go语言有哪些优势

    Go语言有优势:1、学习曲线容易;2、开发效率和运行效率高;3、Go语言可以说是开发效率和运行效率二者的完美融合,天生的并发编程支持;4、Go语言拥有强大的编译检查、严格的编码规范…

    2025-01-05
  • go语言导包时“.”和“_”有什么区别

    区别:“_”操作其实只是引入该包;使用“_”操作引用包是无法通过包名来调用包中的导出函数,而是只是为了简单的调用其init()函数。“.”操作的含义就是这个包导入之后在你调用这个包…

    2025-01-05
  • go语言中run与build命令有哪些区别

    区别:“go run”命令可以编译并直接运行程序,但不会产生exe文件,运行速度也相应较慢;“go build”命令用于测试编译包,主要检查是否会有编译错误,会产生exe文件,运行…

    2025-01-05

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

分享本页
返回顶部