Go语言入门(一)特性、安装、环境搭建、第一个程序等

Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。

Go语言特性

  1. 自动垃圾回收
  • 内存自动回收,再也不需要开发人员管理内存
  • 只需要new分配内存,不需要释放
  1. 具有更丰富的内置类型

Go语言“不仅支持几乎所有语言都支持的简单内置类型(比如整型和浮点型等)外,还支持一些其他的高级类型,比如字典类型map、数组切片(Slice)。

  1. 支持函数多返回值

在C,C++中,包括其他的一些高级语言是不支持多个函数返回值的。但是这项功能又确实是需要的,所以在C语言中一般通过将返回值定义成一个结构体,或者通过函数的参数引用的形式进行返回。而在Go语言中,作为一种新型的语言,目标定位为强大的语言当然不能放弃对这一需求的满足,所以支持函数多返回值是必须的。

  1. 支持高并发

Go语言引入了goroutine概念,它使得并发编程变得非常简单。通过使用goroutine而不是裸用操作系统的并发机制,以及使用消息传递来共享内存而不是使用共享内存来通信,Go语言让并发编程变得更加轻盈和安全。通过在函数调用前使用关键字go,我们即可让该函数以goroutine方式执行,goroutine是一种比线程更加轻盈、更省资源的协程。

  1. 错误处理

在传统的OOP编程中,为了捕获程序的健壮性需要捕获异常,使用的方法大都是try() catch{}模块,例如, 在下面的java代码中,可能需要的操作是:

1 try{
2     Statement stmt = ...;
3 }
4 catch(...){
5     ...
6 }
7 finally{
8     conn.close();
9 }

而在Go中引入了三个关键字,分别是 defer、panic和recover,其中使用defer关键字语句的含义是不管程序是否出现异常,均在函数退出时自动执行相关代码。
所以上面你的java代码用Go进程重写只有两行:

1 conn := ...
2 defer conn.Close()

Go语言安装

Go 语言支持以下系统:

  • Linux
  • FreeBSD
  • Mac OS X(也称为 Darwin)
  • Window

安装包下载地址为:https://golang.org/dl/

Go语言安装之后,C:\Go目录下一共有9个目录与9个文件,如下图:

api — 目录,包含所有API列表,方便IDE使用

bin— 目录,存放编译后的可执行文件

blog— 目录,

doc— 目录,帮助文档

lib— 目录,

misc— 目录,

pkg— 目录,存放编译后的包文件。pkg中的文件是Go编译生成的

src— 目录,存放项目源文件

注:一般,bin和pkg目录可以不创建,go命令会自动创建(如 go install),只需要创建src目录即可。

常用的命令

go build

go build 命令用于编译我们指定的源码文件或代码包以及它们的依赖包。

go build -o bin/tongbupan go_dev/tongbupan/main

-o :指定编译后存放目录以及名称

go install

go install 命令在内部实际上分成了两步操作:第一步是生成结果文件(可执行文件或者.a包),第二步会把编译好的结果移到 $GOPATH/pkg 或者 $GOPATH/bin。

go run

go run命令可以编译并运行命令源码文件。

注意它不会生成 .exe 文件,只会产生一个临时文件(但),直接在命令行输出程序执行结果,方便用户调试。

go get

go get可以根据要求和实际情况从互联网上下载或更新指定的代码包及其依赖包,并对它们进行编译和安装。

go test

go test 命令,会自动读取源码目录下面名为*_test.go的文件,生成并运行测试用的可执行文件。

go clean

go clean命令会删除掉执行其它命令时产生的一些文件和目录

go doc & godoc

go doc命令可以打印附于Go语言程序实体上的文档。我们可以通过把程序实体的标识符作为该命令的参数来达到查看其文档的目的。

godoc是一个很强大的工具,同样用于展示指定代码包的文档。

其他命令

Go语言还提供了其它有用的工具,例如:

go fix 用来修复以前老版本的代码到新版本,例如go1之前老版本的代码转化到go1

go version 查看go当前的版本

go env 查看当前go的环境变量

go list 列出当前全部安装的package

Go语言开发工具

GoLand

JetBrain的GoLand是一款功能强大的IDE,但只有30天的免费试用。

LiteIDE

LiteIDE是一个简单的开源IDE。值得注意的是,它是Go语言2012年正式版发布的首个IDE,由Qt开发,它看起来感觉类似于Visual Studio和GCC C ++等其他编译器。

由于它是为Golang直接设计的,LiteIDE为开发人员提供了许多有用的功能,包括可配置的构建命令,高级代码编辑器和广泛的Golang支持。其他功能包括代码管理,gdb和Delve调试器,自动完成和使用WordApi的主题,基于MIME类型的系统等等。

VS Code

它是微软开发的广受欢迎的开源IDE,有一个开箱即用的Go扩展可供VS Code Code使用。vscode-go插件为开发人员提供了更多功能,包括与许多Go工具集成。

VS Code通过IntelliSense,内置Git集成,直接从编辑器调试代码等功能提供智能完成功能。VS Code具有高度可扩展性,并通过其许多扩展提供了许多自定义选项。它还提供了几十种语言的支持,这使得它成为了受开发者欢迎的工具。

Eclipse插件GoClipse

GoClipse是Eclipse的插件。使用GoClipse插件,开发人员可以利用流行的Eclipse IDE进行编程。Eclipse IDE和GoClipse插件都是免费和开源的。GoClipse编辑器为开发人员提供了广泛的功能,包括源代码编辑器,项目向导和构建器,以帮助报告编辑器内构建的错误,以及功能齐全的GDB调试器支持。

开发环境搭建

windows:

官网下载go1.6.windows-amd64.msi安装文件,安装位置选择默认C:\Go\

安装结束后配置环境变量Path: C:\Go\bin;

接着创建一个GOPATH环境变量,这个变量很重要,我自己写的代码要放到这个变量中配置的目录中,go编译器才会找到并编译;

继续创建一个GOROOT变量,配合go编译器安装的目 GOROOT:C:\Go\;

完成以上步骤后,打开命令行输入 # go version,就会出现go编译器的版本号。

输入# go env就可以看到正确的go环境。

Linux:

Linux部署golang,首先请在windows上自行安装SSH远程工具,比如Xshell4等。

1.安装mercurial包(mercurial版本管理系统,可以输出hg名字检测是否安装)

sudo apt-get install mercurial 或者# sudo easy_install mercurial

2.安装git

sudo apt-get install git

3.安装gcc

sudo apt-get install gcc

4.下载golang的压缩包

wget https://storage.googleapis.com/golang/go1.6.linux-amd64.tar.gz

tar -zxvf go1.6.linux-amd64.tar.gz -C /home

将解压的文件夹改名为go

添加环境变量: # vi /etc/profile

在profile里面添加如下内容

export GOROOT=/home/go

export PATH=$GOROOT/bin:$PATH

export GOPATH=/home/gopkg

GOPATH和GOROOT修改为你的路径即可.

然后我们刷新环境变量: #source /etc/profile

最后我们验证一下是否安装成功: # go version

5.我们也可以不下载golang的压缩包来进行安装

sudo apt-get install golang

go version

Mac:

官网下载go1.6.darwin-amd64.pkg安装文件进行安装

或者安装homebrew后输入命令:

brew update

brew install mercurial

brew install go

进行安装。

输入# go version,就会出现go编译器的版本号.

输入# go env就可以看到正确的go环境.

第一个Go程序

不能免俗,老规矩来个Hello World

1 package main
2
3 import (
4     "fmt"
5 )
6
7 func main() {
8     fmt.Println("Hello World")
9 }

把上面的代码保存到“C:\mygo\src\hello.go”,然后打开命令行,执行:go install hello,即可看到输出结果:Hello World

项目目录

bin : 存放编译后的可执行文件

pkg:存放编译后的包文件

src : 存放项目源文件

原文地址:https://www.cnblogs.com/pacobai/p/9374976.html

时间: 2024-07-30 03:01:19

Go语言入门(一)特性、安装、环境搭建、第一个程序等的相关文章

C语言入门(一)环境搭建

1. 下载Code::Blocks(源文本编辑器) 2. 下载编译器MinGW(或者下载好自带编译器的codeblocks) http://jingyan.baidu.com/article/c843ea0ba4ca0a77931e4a27.html

我的全栈之路-C语言基础之集成开发环境搭建

我的全栈之路-C语言基础之集成开发环境搭建 我的全栈之路 2.1 C语言集成开发环境搭建 目前主流的操作系统(Windows,Linux,macOS)都有完善的C语言集成开发环境,用于编辑.编译.调试.打包部署C程序. 操作系统 开发工具 Windows10 1903 Visual Studio2019 macOS10.14 XCode10.3 Ubuntu18.04 QT5.13 Windows作为世界上最流行的桌面操作系统,当前最新版本为Windows10 1903,VisualStudio

Storm使用入门之本地开发环境搭建

本篇博文详细告诉你如何安装Storm的本地开发环境,总体分为两步,具体如下: 1.从官网上下载Storm的发布包,下载完成后将其解压,并将解压后的bin目录添加到环境变量(PATH)中,以方便后续执行Storm的相关命令 2.修改Storm的配置文件(storm.yaml),主要是按照实际情况更新配置文件中的集群信息,然后将修改后的配置文件添加到目录(~/.storm/)中,目的是为了后续能够远程启动和停止集群上的计算任务(即topology) 接下来,咱们来详细地介绍每一个操作步骤. 首先,何

Golang (Go语言) Mac OS X下环境搭建 环境变量配置 开发工具配置 Sublime Text 2 【转】

一.安装Golang的SDK 在官网 http://golang.org/ 直接下载安装包安装即可.下载pkg格式的最新安装包,直接双击运行,一路按照提示操作即可完成安装. 安装完成后,打开终端,输入go,检测Golang SDK是否安装成功,如下显示,则表示安装成功: 你也可以输入go version 查看你所安装的Golang的版本 二.环境变量配置(GOPATH) GOPATH是用来告诉Golang命令和其他相关工具,在哪里可以找到你系统上的Go包目录. GOPATH是一个路径列表,类似于

R语言入门1:安装R和RStudio

R语言入门1:安装R和RStudio 曹务强 中科院遗传学博士研究生 9 人赞同了该文章 1. Windows安装R 在Windows系统上,安装R语言比较简单,直接从R的官方网站下载,按照正常的软件安装流程点下一步即可. 2. Windows安装RStudio R语言自带的工作窗口界面非常不美观,用起来也非常不方便.于是有人发明了RStudio: RStudio是R语言的一种集成开发环境,它是免费自由软件.RStudio同时有桌面版和服务器版.RStudio基于C++开发,它的图形用户界面基于

spring mvc(一)开发环境搭建和HelloWorld程序

Spring MVC 3提供了基于注解.REST风格等特性,有些方面比Struts 2方便一些. 这里进行Spring MVC 3的开发环境搭建,即开发Hello World程序. 1,拷贝Spring MVC 3类库到WEB-INF/lib下,经测试至少需要如下几个,版本为Spring 3.1.1: org.springframework.asm-3.1.1.RELEASE.jar org.springframework.beans-3.1.1.RELEASE.jar org.springfr

spring mvc(三)开发环境搭建和HelloWorld程序

Spring MVC响应中返回JSON数据的方法: 配置与以前相同使用<mvc:annotation-driven/>的注解配置, 但WEB-INF/lib的类路径里面要有jackson-all-1.6.9.jar这个库文件, 然后在controller里面这样写: @Controller @RequestMapping("/user" ) public class UserController { @RequestMapping("/ajax2" )

spring mvc(二)开发环境搭建和HelloWorld程序

Spring MVC3在controller和视图之间传递参数的方法: 一, 从controller往视图传递值, controller---->视图 1)简单类型,如int, String,直接写在controller方法的参数里,是无法传递到视图页面上的(经测试). (而用@RequestParam("name")注解,可以从视图上,或地址中加?name=***传递到controller方法里) 2)可以用Map<String, Object>,其键值可以在页面上

汇编入门学习笔记 (三) —— 第一个程序

疯狂的暑假学习之  汇编入门学习笔记 (三)-- 第一个程序 参考:<汇编语言> 王爽  第四章 1.一个源程序从写到执行的过程 第一步:编写汇编源程序 第二步:对源程序进行编译连接 第三步:在操作系统中执行 2.源程序 代码: assume cs:first first segment start: mov ax,2 add ax,ax add ax,ax mov ax,4C00H int 21H first ends end start 代码解释: assume .segment.ends

Golang/Go语言/Go IDE/Go windows环境搭建/Go自动提示编译器/GoSublime

Go是Google开发的一种编译型,并发型,并具有垃圾回收功能的编程语言. 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go语言,Go语言是基于Inferno操作系统所开发的.Go语言于2009年11月正式宣布推出,并在Linux及Mac OS X平台上进行了实现. GO语言吉祥物,很可爱吧. Go语言的hello world!代码: [java] view plaincopyprint? package main im