初探GOLANG

golang与java的一些区别与共性

因为之前学过java,所以不自觉的就与java的特点进行了一些粗浅的比较,学了一段时间golang,便整理一下,方便查询

  1. go使用package来管理文件,java使用class来管理文件
  2. 感觉go与matlab倒是有点类似,函数可以多值返回且类型不必一致,有结构体(struct),go通过struct实现类的特性,将struct与函数进行绑定使该函数成为该struct的方法,通过struct的嵌套来实现类的继承
  3. go有指针的概念而java没有,&可用于取地址,*可用于取出地址中的值
  4. go通过首字母的大小写进行区分变量或者函数的可见性,而java通过可见性关键字(public、private、default、protect)实现可见性的区分
  5. go的变量声明不同于java,go是var varName dataType [ = value],而java是DataType identifier = value;
  6. go同python一样不用使用分号结束语句,而java必须使用分号
  7. go的类型推导(:=)挺方便的
  8. 控制流程语句中,只用for用于循环(这倒是解决了我多年的for与while的困惑),多了goto、select
  9. go的基本数据类型有20种,甚至包括复数(complex),而java只有8种。可惜的是go似乎不支持隐式转换,只能显示转换数据类型
  10. go的struct通过实现目标接口中所有同名方法来达到实现接口的目的
  11. go的类型似乎较少,有slice、map、channel,不同于java的list、set、map这么多大类

以上仅列举了一些简单的不同,还需要从实践中具体分析

我看的一些资料

go语言核心编程,讲基础挺细致的
初探GOLANG_第1张图片
go易于实现并发,所以对并发方面的学习还是有必要的
初探GOLANG_第2张图片
Golang修养之路
go语言标准库文档

你可能感兴趣的:(Golang,golang)