• Java学习Go(入门)


    下载Go

    《官网下载golang》
    直接点Download,然后根据你自己的操作系统进行下载,我这里以win10为例
    在这里插入图片描述

    安装go

    默认安装到C:\Program Files\Go,这里我们可以选择安装到其他盘,也可以选择默认安装。初学者建议直接一路next。
    安装完成后Win + S 输入cmd,输入以下命令查看是否安装成功

    go env
    
    • 1

    输出内容如下:

    C:\Users\X>go env
    set GO111MODULE=on
    set GOARCH=amd64
    set GOBIN=
    set GOCACHE=C:\Users\X\AppData\Local\go-build
    set GOENV=C:\Users\X\AppData\Roaming\go\env
    #打包后的二进制可执行文件后缀名,不同系统后缀名不一样,windows是.exe
    set GOEXE=.exe
    set GOEXPERIMENT=
    set GOFLAGS=
    #操作系统的架构
    set GOHOSTARCH=amd64
    #操作系统
    set GOHOSTOS=windows
    set GOINSECURE=
    set GOMODCACHE=C:\Users\X\go\pkg\mod
    set GONOPROXY=
    set GONOSUMDB=
    set GOOS=windows
    #工作目录,这个可以设置系统变量进行修改
    set GOPATH=C:\Users\X\go
    set GOPRIVATE=
    #设置代理,因为国内很大概率无法访问google官网进行下载某些插件或依赖
    set GOPROXY=https://goproxy.io,direct
    #安装路径
    set GOROOT=D:\softwareWork\Go
    set GOSUMDB=sum.golang.org
    set GOTMPDIR=
    set GOTOOLCHAIN=auto
    #工具文件夹路径
    set GOTOOLDIR=D:\softwareWork\Go\pkg\tool\windows_amd64
    set GOVCS=
    #版本
    set GOVERSION=go1.22.2
    set GCCGO=gccgo
    set GOAMD64=v1
    set AR=ar
    set CC=gcc
    set CXX=g++
    set CGO_ENABLED=0
    set GOMOD=NUL
    set GOWORK=
    set CGO_CFLAGS=-O2 -g
    set CGO_CPPFLAGS=
    set CGO_CXXFLAGS=-O2 -g
    set CGO_FFLAGS=-O2 -g
    set CGO_LDFLAGS=-O2 -g
    #打包配置
    set PKG_CONFIG=pkg-config
    set GOGCCFLAGS=-m64 -fno-caret-diagnostics -Qunused-arguments -Wl,–no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\X\AppData\Local\Temp\go-build1065635485=/tmp/go-build -gno-record-gcc-switches

    配置代理

    win+s输入cmd,然后输入

    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.io,direct
    
    • 1
    • 2

    打开IDEA安装Go插件

    无法安装的话,直接去IDEA下载插件对应IDEA的版本安装,版本太高可能无法安装成功,无法安装成功就降版本。
    在这里插入图片描述

    创建项目

    在这里插入图片描述
    在这里插入图片描述
    示例代码,如下:
    go是根据命名的首字母来区分是public还是private
    大写字母开头表示public可以在外部包和内部包调用
    小写字母开头表示private只允许所在包(内部包)调用

    // 当前程序包名
    package main
    
    //导入其它的包
    import (
    	"fmt"
    )
    
    // 定义一个名为HELLO的常量,赋值为Hello world.【可以看到这里和Java有区别,它可以不用声明变量的类型,因为Go有类型推断】
    const HELLO = "Hello world."
    
    // 定义一个名为num的全局变量,赋值为1
    var num = 1
    
    // 声明变量类型为int,名为number,不能赋值
    type number int
    
    // 声明一个名为User的结构【类似于Java的类】
    type User struct {
    	//变量名 类型【跟Java是反着来的,Java是先定义类型,再定义变量名】
    	name string
    	age int
    }
    
    // 声明一个名为MyInterface的接口【跟Java的接口差不多】
    type MyInterface interface {
    
    }
    
    // 主程序【跟Java的main方法差不多,只不过Go的main方法没有入参(String args)和反参(void)】
    func main() {
    	//调用fmt的Println输出内容到控制台方法,传入我们定义的HELLO常量
    	fmt.Println(num)
    	fmt.Println(number(2))
    	fmt.Println(HELLO)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    运行程序输出:

    1
    2           
    Hello world.
    
    • 1
    • 2
    • 3
  • 相关阅读:
    鲍鱼数据集
    两数乘积:输出1~100整数乱序列表中两数乘积是目标整数的最小下标对
    在.net中通过自定义LoggerProvider将日志保存到数据库方法(以mysql为例)
    重生之 SpringBoot3 入门保姆级学习(19、场景整合 CentOS7 Docker 的安装)
    全志A40i开发板硬件说明书——100%国产+工业级方案(上)
    SAP FICO 供应商往来款余额查询表开发说明书(包括开发源代码、测试样例及FS)
    小咖批量剪辑助手款视频批量自动剪辑软件
    uniapp项目实践总结(十一)自定义网络检测组件
    【教3妹学编程】消息队列的使用场景有哪些?
    提高大型装配体的处理速度
  • 原文地址:https://blog.csdn.net/weixin_43933728/article/details/138046641