package 包名:
在Java中 任何一个Java文件都可以有唯一一个main方法当作启动函数
而在go中 任何一个package中都可以有唯一一个带main方法的go文件,也就是说一个package下只能有一个main方法
Java中包的作用:
用于分隔类名空间。
go中包的作用
1.任何源码属于一个包
2.用包组织便于代码的易读和复用
go语言的关键特性:
1.并发与协程(使用go关键字支持并发,对比java更加简单高效)
2.基于消息传递的通信方式
3.丰富实用的内置类型(String 字符串类型 , slice 切片类型 即可变长度数组类型 , map 字典类型 ,complex64,complex128 复数类型 ,error错误类型,通常用于函数返回, interface{} any类型 类似于Java中的object ,chan channel类型 用于协程间的消息通信
4.函数多返回值
5.defer机制 :提供关键字defer,可以通过该关键字指定需要延迟执行的逻辑体,即在函数体return前或出现panic时执行。这种机制非常适合善后逻辑处理,比如可以尽早避免可能出现的资源泄漏问题。可以代替Java中的try...catch...fonally中的关闭资源
6.反射: go作为 强类型的编译型语言 (Java既是编译型 也是解释型)
7.高性能http Server
8.工程管理
9.编程规范 :命名上:任何对外暴漏的变量,常量,函数,结构,接口 必须以大写字母开头,不需要对外暴漏的则以小写字母开头
强制要求一行一句,不需要使用;结束语句
不允许使用没导入的包
不允许定义没使用的变量