【原创】go语言学习(一)

一、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、 编译型语⾔言
【原创】go语言学习(一)的更多相关文章
- [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 12天学好C语言——记录我的C语言学习之路(Day 12)
12天学好C语言--记录我的C语言学习之路 Day 12: 进入最后一天的学习,用这样一个程序来综合考量指针和字符串的关系,写完这个程序,你对字符串和指针的理解应该就不错了. //输入一个字符串,内有 ...
- 12天学好C语言——记录我的C语言学习之路(Day 11)
12天学好C语言--记录我的C语言学习之路 Day 11: 因为指针部分比较的难,所以我们花费的时间也是最长的,希望大家耐的住性子,多多理解,多多打代码.好了,废话不多说,来看第11天的学习. //编 ...
- 12天学好C语言——记录我的C语言学习之路(Day 10)
12天学好C语言--记录我的C语言学习之路 Day 10: 接着昨天的指针部分学习,有这么一个题目: //还是四个学生,四门成绩,只要有学生一门功课没及格就输出这个学生的所有成绩 /*//progra ...
- 12天学好C语言——记录我的C语言学习之路(Day 9)
12天学好C语言--记录我的C语言学习之路 Day 9: 函数部分告一段落,但是我们并不是把函数完全放下,因为函数无处不在,我们今后的程序仍然会大量运用到函数 //转入指针部分的学习,了解指针是什么 ...
- 12天学好C语言——记录我的C语言学习之路(Day 8)
12天学好C语言--记录我的C语言学习之路 Day 8: 从今天开始,我们获得了C语言中很有力的一个工具,那就是函数.函数的魅力不仅于此,一个程序到最后都是由众多函数组成的,我们一定要用好函数,用熟练 ...
- 12天学好C语言——记录我的C语言学习之路(Day 7)
12天学好C语言--记录我的C语言学习之路 Day 7: 昨天进行了一天的数组学习,今天大家可以先写几个昨天的程序热热身,回顾回顾,然后今天第一个新程序也是关于数组的,比较难,准备好就开始啦! //输 ...
- 12天学好C语言——记录我的C语言学习之路(Day 6)
12天学好C语言--记录我的C语言学习之路 Day 6: 今天,我们要开始学习数组了. //①数组部分,数组的大小不能够动态定义.如下: //int n; scanf("%d,& ...
- 12天学好C语言——记录我的C语言学习之路(Day 5)
12天学好C语言--记录我的C语言学习之路 Day 5: 第五天的学习开始了,今天我们主要对几个程序进行编写,让自己充分的熟练编程语言,大量的题目会让自己变的精炼.以一个程序(program 5.1) ...
- 12天学好C语言——记录我的C语言学习之路(Day 4)
12天学好C语言--记录我的C语言学习之路 Day 4: 首先来看一段程序: //输出下面4*5的矩阵 /* 1 2 3 4 5 2 4 6 8 10 3 6 9 12 ...
随机推荐
- ajax回调函数,全局变量赋值后,ajax外无法获取的解决
1 ajax回调函数内,function的执行与ajax外是异步的,常导致全局变量赋值后,再次使用此变量人无法获取. 所以,可以把需要的步骤,独立放在functuon中,在ajax回调函数中执行.可较 ...
- mysql 树结构递归处理
日常开发中我们经常会遇到树形结构数据处理,一般表结构通常会常用id,pid这种设计方案. 之前用oracle.sqlServer数据库,用相应的语法即可获取树形结构数据(oracel:connect ...
- C#基础--AbStract与Interface
Interface: 接口方法不能用public abstract等修饰.接口内不能有字段变量,构造函数. 接口内可以定义属性,如string color{get;set;}这种. 实现接口 ...
- mysql cmd命令行 创建数据库 表 基础语句
一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1. 连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u roo ...
- Apache Flink 任意jar包上传漏洞
目前受影响版本:version 1.9.1(最新),官方未发布补丁. Apache Flink仪表板- >上传恶意的JAR- >提交新工作- >getshell 生成jar包,用nc ...
- 三:后台的登录注册接口(moon项目,前面有一,二)
** 项目一共有 16 个页面,是一个电商网销项目,自己在网上的某网上找的一个要做的网站的设计图: 页面主要包括: 登录页 -- 注册页 -- 首页 -- 产品列表页 -- 产品详情页 -- 会员中 ...
- python之re(正则表达式)
可以参考以下博客 https://www.cnblogs.com/guyuyun/p/5839881.html https://www.runoob.com/python/python-reg-exp ...
- C++ 类再探
关于类的一些遗漏的点. #include <iostream> #include <typeinfo> #include <string> using namesp ...
- SAP官方发布的ABAP编程规范
最近有朋友在公众号后台给我留言,"Jerry啊,你最近写的都是一些SAP研究院里面用到的新技术,能不能写点SAP传统的开发技术比如ABAP相关的东西"? 其实Jerry在刚开始写这 ...
- selenium重定向新窗口
1.跳转新窗口 # 浏览器跳转新窗口后,selenium绑定新窗口 print('页面跳转后重新绑定selenium.') time.sleep(3) search_window = driver.c ...