1.GoPath和Java的ClassPath
我们先来看看关于Java的classpath:
在我们的开发环境中,一个web程序(war包)有一个classpath,这个classpath在IDEA的开发工具中目录体现为src目录和resource目录,实际上在真正的war包中他定位的是指WEB-INF下的classes文件夹下的资源(比如class文件)。
我们编译后的文件都放在classpath(类路径)下。我们多个项目程序会有多个classpath目录。
在Go语言中,GoPath在同一系统上的同一用户,一般规定只有一个,无论这个用户创建多少个go项目,都只有一个GoPath,并且这些项目都放在GoPath下的src目录下。
GoPath下有三个目录:
1.bin (用于存放项目编译后的可执行文件)
2.pkg (用于存放类库文件,比如.a结尾的包模块)
3.src (用于存放项目代码源文件)
注意:当我们在windows上开发Go程序时,需要新建一个文件夹(文件夹名任意)作为GOPATH的文件目录,在其中新建三个文件夹分别是:bin,pkg,src。如果是在集成开发工具上开发的话,需要在设置中把GOPATH路径设置为你自定义的那个文件夹,之后产生的文件和相关内容都会在其中。
如果是在linux上想跑测试开发执行go程序,需要在/etc/profile添加名为GOPATH的环境变量,目录设置好自己新建的。
例如:全局用户设置GOPATH环境变量
vi /etc/profile
#添加如下 目录可以灵活修改
export GOPATH=/pub/go/gopath
//立即刷新环境变量生效
source /etc/profile
单用户设置GOPATH环境变量
vi ~/.bash_profile
#添加如下 目录可以自己灵活修改
export GOPATH=/home/user/local/soft/go/gopath
//立即刷新环境变量生效
source vi ~/.bash_profile
注意:这是在linux上开发go程序才需要的,如果只是生产运行程序的话是不需要任何东西的,直接运行二进制可执行程序包即可,他所有的依赖全部打进包中了。
如果是在windows下的cmd,dos窗口运行相关的go命令和程序,则需要在windows的【此电脑】-->【右键】-->【属性】-->【高级系统设置】-->【环境变量】-【新建一个系统变量】-->【变量名为GOPATH,路径为你自己指定的自定义文件夹】(如果是在IDEA中开发,不需要在此配置环境变量,只需要在IDEA中配置好GOPATH的目录设置即可)
2.Go的开发环境搭建
(配置环境变量GOPATH参考上一节内容)
我们要开发Go的程序,需要如下两样东西:
1.Go SDK
GO中文社区SDK下载地址:studygolang.com/dl
go1.14
我们用1.14版就可以,因为1.13后才完全支持Module功能。
有两种安装模式,一种是压缩包解压的方式,一种是图形化安装。
推荐使用windows图形安装傻瓜式安装,windows图形安装下载这个
studygolang.com/dl/golang/g…
linux安装如下:
后续补上。。。
- Go的集成软件开发环境
参考三(4)中的go集成开发环境选择。
3.Go与Java的文件结构对比
1).go文件结构模板
//主程序必须是写成main包名
package main
//导入别的类库
import "fmt"
//全局常量定义
const num = 10
//全局变量定义
var name string = "li_ming"
//类型定义
type P struct {
}
//初始化函数
func init() {
}
//main函数:程序入口
func main() {
fmt.Printf("Hello World!!!");
}
2).Java文件结构
//包名
package my_package;
//导入包中的类
import java.io.*;
public Class MainTest{
//main方法:程序入口
public void static main(String[] args) {
}
}
//people类
Class People {
//成员变量
public String name;
public int age;
//成员方法
public void doSomething() {
}
}
4.Go与Java的集成开发环境
1).Go的集成开发环境
最常用的有三种:
Visual Studio Code(VS Code) 微软开发的一款Go语言开发工具。
LiteIDE 是国人开发的Go语言开发工具。
GoLand 这个非常好用,和Java中的IDEA是一家公司。(推荐使用)
2).Java的集成开发环境
MyEclipse,Eclipse(已过时)。
IntelliJ IDEA(大多数用这个)。
5.Go和Java常用包的对比
Go中文API文档地址:
Go Java
IO流操作: bufio/os java.lang.io
字符串操作: strings java.lang.String
容器 container(heap/list/ring) java.lang.Collection
锁 sync juc
时间 time java.time/java.lang.Date
算数操作 math java.math
底层 Unsafe unsafe unsafe类
6.Go的常用基础数据类型和Java的基础数据类型对比
1).go中的常用基础数据类型有:
1.布尔型:关键字【bool】: true false
2.有符号整形:头一位是代表正负
int 默认整形 4或8字节 32位或64位
int8 1字节 8位
int16 2字节 16位
int32 4字节 32位
in64 8字节 64位
【int是32还是64位取决于操作系统的位数,现在电脑一般都是64位的了,所以一般都是64位】
3.无符号整形
uint 4或8字节 32位或64位
uint8 1字节 8位
uint16 2字节 16位
uint32 4字节 32位
uint64 8字节 64位
4.浮点型
注:go语言没有float类型,只有float32和float64。
float32 32位浮点数
float64 64位浮点数
5.字符串
string
6. byte 等同uint8,只是类似于一个别名的东西
rune 等同int32 只是一个别名,强调表示编码概念对应的数字
2).go中派生数据类型有:
注:这里简单列举一下
指针 Pointer
数组 Array[]
结构体 struct
进程管道: channel
函数 func
切片 slice
接口 interface
哈希 map
3).Java中的基础数据类型
byte
short
int
long
float
double
boolean
char