赞
踩
目录
8.1、VSCode(visual studio code)下载安装
Go语言(简写:Golang)
程序: 为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。
API:Application Programming Interface:应用程序编程接口。
Go语言的官网为:www.golang.org/
Go SDK下载地址:golang.google.cn/dl/
Golang中文社区:studygolang.com/dl
Golang中文社区文档:studygolang.com/pkgdoc
区块链应用
区块链技术,简称BT(Blockchain technology),也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。
后端服务器应用
美团后台流量支持程序支撑主站后台流量(排序,推荐,搜索等),提供负载均衡,cache,容错,按条件分流,统计运行指标(qps,latency)等功能
云计算/云服务后台应用
盛大云计算:应用范围,CDN的调度系统,分发系统,监控系统,短域名服务,CDN内部开放平台,运营报表系统以及其他一些小工具等。
京东云: 应用范围后台所有服务全部用go实现
Go语言是区块链最主流的编程语言,同时也是当前最具开发潜力的语言。
Go语言是Google公司创造的语言,也是Google主推的语言。
国外如Google、AWS等,国内如阿里、小米、京东等都已经开始大规模使用Golang开发其云计算相关产品
Go语言的核心开发团队
Ken Thompson(肯·汤普森): 1983年图灵奖(Turing Award)和1998年美国国家技术奖(National Medal of Technology)得主。他与Dennis Ritchie是Unix的原创者。Thompson也发明了后来衍生出C语言的B程序语言,同时也是C语言的主要发明人。
Rob Pike(罗布·派克): 曾是贝尔实验室(Bell Labs)的Unix团队,和Plan 9操作系统Plan的成员。他与Thompson共事多年,并共创出广泛使用UTF-8字符编码。
Robert Griesemer: 曾协助制作Java的HotSpot编译器,和Chrome浏览器的JavaScript引擎V8。
Go语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容Go语言,Go=C+Python,说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发。
从C语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等等,也保留了和C语言一样的编译执行方式及弱化的指针。
引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在。
引入垃圾回收机制,内存自动回收,不需开发人员管理
天然并发(重要特点)
(1)从语言层面支持并发,实现简单
(2)goroutine,轻量级线程,可实现大并发处理,高效利用多核。
(3)基于CPS并发模型(Communicating Sequential Processes)实现
吸收了管道通信机制,形成Go语言特有的管道channel,通过管道channel,可以实现不同的goroute之间的相互通信。
函数返回多个值
新的创新:比如切片slice、延时执行defer等
1、VSCode(visual studio code)默认提供Go语言的语法高亮,安装Go语言插件,还可以智能提示,编译运行等功能。
2、Eclipse IDE工具,开源免费,并提供GoEclipse插件
3、JetBrains公司的产品,PyCharm、WebStrom、PhpStrom等IDE工具,都需要安装Go插件。
JetBrains公司的产品,GoLand
4、LiteIDE,是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE)是国人开发的。免费的。
VSCode下载慢:复制下载链接地址替换成国内镜像地址:vscode.cdn.azure.cn
例:
https://az764295.vo.msecnd.net/stable/5e805b79fcb6ba4c2d23712967df89a089da575b/VSCodeSetup-x64-1.76.1.exe
替换为:
https://vscode.cdn.azure.cn/stable/5e805b79fcb6ba4c2d23712967df89a089da575b/VSCodeSetup-x64-1.76.1.exe
SDK的全称(Software Development Kit)软件开发工具包
SDK是提供给开发人员使用的,其中包含了对应开发语言的工具包
Go语言的官网为:https://www.golang.org/
,因为各种原因,可能无法访问。
Go SDK下载地址:https://golang.google.cn/dl/
Golang中文社区:https://studygolang.com/dl
Golang中文社区文档:https://studygolang.com/pkgdoc
1、检查SDK是否安装成功:
go version
环境变量path:C:\Program Files\Go\bin
环境变量介绍:根据windows系统在查找可执行程序的原理,可以将Go所在路径定义到环境变量中,让系统帮我们去找运行的程序,这样在任何目录都可以执行go指令。
2、go代码生成exe文件, 执行以下命令会将hello.go在当前目录生成hello.exe
go build hello.go
3、直接运行结果,不生成exe文件
go run hello.go
4、指定生成文件的名字
go build -o hello1.exe hello.go
5、命令行格式化代码
gofmt -w hello.go
直接运行gofmt hello.go只是显示格式化后的代码格式,不写到文件里面
6、go doc 命令 :查看api说明
go doc fmt
- package main
-
- import "fmt"
-
- func main(){
- fmt.Println("Hello World!")
- }
对上图的说明:
运行演示:
对源码编译后,再运行,Go执行流程如下
对源码直接执行go run 源码,Go执行流程如下 编译运行一步
两种执行流程的方式区别:
Golang常用的转义字符(escape char)
- 1.\t:一个制表位,实现对齐的功能
- 2.\n:换行符
- 3.\\:一个\
- 4.\":一个"
- 5.\r:一个回车,从当前行的最前面开始输出,覆盖掉以前的内容
- 6.\a:响铃
- 7.\b:退格
- 8.\f:换页
- 9.\v:垂直制表符
- 10.\':单引号
- package main
- import "fmt"
-
- func main(){
- fmt.Println("姓名\t年龄")
- fmt.Println("姓名\n年龄")
- fmt.Println("姓名\\年龄")
- fmt.Println("姓名\"年龄")
- fmt.Println("姓名姓名\r年龄")
- }
注释: 用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性:
注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。
Go语言的注释两种形式:
注:块注释里面不允许有块注释嵌套,被注释的文字,不会被Go编译器执行。
- 正确的:
- package main
-
- import "fmt"
-
- func main(){
- fmt.Println("Hello World!")
- }
- 错误的:
- package main
-
- import "fmt"
-
- func main()
- {
- fmt.Println("Hello World!")
- }
-
- Go设计者思想:一个问题尽量只有一个解决方法
标识符的命名规则
int,float32允许作为标识符:语法可以通过,但是开发中不推荐使用
系统保留关键字
在Go中,为了简化代码编译过程中对代码的解析,其定义的保留关键字只有25个。 break,default,func,interface,select,case,defer,go,map,struct,chan,else,goto,package,switch,const,fallthrough,if,range,type,continue,for,import,return,var.
预定义标识符介绍
除了保留关键字外,Go还提供了36个预定义的标识符,其包括基础数据类型和系统内嵌函数 append,bool,byte,cap,close,complex,complex64,complex128,uint16,copy,false,float32,float64,imag,int,int8,int16,uint32,int32,int64,iota,len,make,new,nil,panic,uint64,print,println,real,recover,string,true,uint,uint8,uintprt
标识符注意事项
- package main
- import (
- "fmt"
- )
-
- func main(){
- const (
- a=1
- b=2
- )
- fmt.Println(a,b)
-
- const (
- c=iota
- d
- e
- )
- fmt.Println(c,d,e)//0 1 2
- const (
- f=iota
- g=iota
- h,i=iota,iota
- )
- fmt.Println(f,g,h,i)//0 1 2 2
- }
Golang中没有常量名必须字母大写的规范
仍然通过首字母的大小写来控制常量的访问范围
谁占领了先机,谁就拥有更多的机会!
干我们这行,啥时候懈怠,就意味着长进的停止,长进的停止就意味着被淘汰,只能往前冲,直到凤凰涅槃的一天!
懂与不懂都是收获
先know how,再know why!有时候做出来不一定知道为什么!
First know how, then know why
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。