一、go发展历史

1.1诞生历史

1、诞生于2006年1月下午15点4分5秒

2、2009发布并正式开园

3、2012年第一个正式版本Go1.0发布

4、截止2019年10月8日,Go1.13.1

1.2发展情况

二、开发环境搭建

2.1GO安装

1、打开https://golang.org/dl/

2、下载对应操作系统

3、安装

1、windows双击安装

2、linux编译安装

mkdir -p /var/opt/wwwroot/goblog
配置环境变量 vim /etc/profile
export GOROOT=/usr/local/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
export GOPATH=/var/opt/wwwroot/goblin
source /etc/profile
安装结束,验证 go version go调试
dlv debug --headless --listen=: --api-version=

2.3git安装

1、下载

https://git-scm.com/downloads

2、安装

window双击安装

linux

$ yum install git
$ yum install git-svn git-email gitk

2.3IDE(GoLand)

1、安装过程不再重复(详见pycharm安装)直接上验证

注意:配置环境变量

三、Golang目录结构介绍

3.1目录结构划分

3.2目录结构划分二

三、第一个golang程序

// 属于那个包,package包名和函数对应一一对应
package main // 导入包
import (
"fmt"
) func main() {
// 打印fmt.Println
fmt.Println("hello world")
// 睡眠时间
// time.Sleep(time.Second*10)
}

四、包的概念

1、和python⼀一样,把相同功能的代码放到⼀一个⽬目录,称之为包

2、 包可以被其他包引⽤用

3、 main包是⽤用来⽣生成可执⾏行行⽂文件,每个程序只有⼀一个main包

4、 包的主要⽤用途是提⾼高代码的可复⽤用性

五、Go 基本命令介绍

1、基本命令

a. go run 快速执⾏行行go⽂文件,就像执⾏行行脚本⼀一样
b. go build 编译程序,⽣生成⼆二进制可执⾏行行⽂文件
c. go install 安装可执⾏行行⽂文件到bin⽬目录

2、 基本命令

a. go test 执⾏行行单元测试或压⼒力力测试
b. go env 显示go相关的环境变量量
c. go fmt 格式化源代码

3、 Go程序结构

b. ⼀一个可执⾏行行程序只有⼀一个main包和⼀一个main函数
c. main函数是程序的执⾏行行⼊入⼝口
a. go源码按package进⾏行行组织,并且package要放到⾮非注释的第⼀一⾏行行

4、注释

b. 多⾏行行注释 /* */
a. 单⾏行行注释 //

六、golang语言特性

1、 垃圾回收

a. 内存⾃自动回收,再也不不需要开发⼈人员管理理内存
b. 开发⼈人员专注业务实现,降低了了⼼心智负担
c. 只需要new分配内存,不不需要释放

2、天然并发

a. 从语⾔言层⾯面⽀支持并发,⾮非常简单。只需要go⼀一下
b. goroutine,轻量量级线程,创建成千上万个goroute成为可能

func calc() {
//⼤大量量计算

}
func main() {
go calc()

}

3、channel

a. 管道,类似unix/linux中的pipe
b. 多个goroute之间通过channel进⾏行行通信
c. ⽀支持任何类型

4、 多返回值

a. ⼀一个函数返回多个值

5、 编译型语⾔言

最新文章

  1. ubuntu安装mysql
  2. web前端开发培训和自学 哪种选择更适合你
  3. SQL sever 学习,2016,5,31,(重点:100行以后,字符串操作。)
  4. servlet简单用法和配置示例及说明
  5. posix and system V IPC
  6. JAVA基础知识之网络编程——-网络通信模型(IO模型)
  7. linux下各种软件的安装过程
  8. js文本框提示和自动完成
  9. 字符编解码的故事(ASCII,ANSI,Unicode,Utf-8区别)
  10. docker RESTful API
  11. linux下的shell命令的编写,以及java怎样调用linux的shell命令(java怎样获取linux上的网卡的ip信息)
  12. CentOS7安装使用MySQL
  13. SQL LIKE 操作符
  14. Poj1979 Red and Black (DFS)
  15. Java知多少(64)线程死锁
  16. SHOW_PAGE_TRACE
  17. Chrome浏览器扩展 获取用户密码
  18. Android动画(Animations)
  19. django-simple_tag、filter
  20. hduoj------确定比赛名次

热门文章

  1. 基于【 centos7】五 || GitLab环境搭建
  2. Vue2.0+elementUI使用echarts插件
  3. 微信企业红包api接入
  4. Computer Vision_18_Image Stitching:Automatic Panoramic Image Stitching using Invariant Features——2007
  5. DAY2新手选品原则及供应商选择
  6. 用js刷剑指offer(二进制中一的个数)
  7. wav音频的剪切
  8. 【ecfinal2019热身赛】B题
  9. php中float浮点型字段查询问题(数据对应不上)
  10. 【Jenkins】忘记admin密码,可以用此方法帮你解决