go语言环境及基本常识1
go语言的简单认识
用途
- 用于处理区块链
- Blockchain technology(BT),也叫做
分布式账本技术 - 去中心化,每个人都可以进行数据记录
- Blockchain technology(BT),也叫做
- 在处理数据和大并发时很强
- 如美团后台流量支撑(排序,推荐,搜索等都是需要进行数据处理),提供负载均衡,cache,容错,按条件分流(这些需要大并发)
- 用于后台游戏开发
- 如仙侠道的通讯,逻辑,数据存储
- 用于分布式,云计算,云服务
- 盛大云CDN(Content Delivery Network)
- 京东消息推送,分布式文件系统
go相关常识
- 是Google创造的语言
- 有应用go的公司
- Google, AWS, Cloudflare, CoreOS,
- go语言作用
- 合理利用多核多CPU
- 风格统一
- 提高计算能力
- 处理大并发
- 编译快,同时具备脚本语言的快速开发
- go语言设计者
- Ken Thompson(肯·汤普森),Rob Pike(罗布·派克),Robert Griesemer(罗伯特·格瑞史莫)
- go语言发展史
- 2007年,三位大佬设计了go的原型
- 2009年,Google开放go源码
- 2015年,go1.5发布,移除了最后残余的C代码,里程碑式版本
- 2017年,发布了go1.8, go1.9
- 2018年,发布了go1.10
- bit是计算机最小存储单位,byte是计算机基本存储单位
- Go语言的字符有以下两种类型:
- uint8类型:代表了ASCII码的一个字符。
- rune类型:代表了UTF格式的一个字符(如中文、日文或其他复合字符),本质是int32类型。
特点
- 有静态编译语言的安全和性能,也有动态语言开发维护的高效率
- 可以看做Go = C + Python
- go继承了C的很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等
- go有包的概念(用于组织程序结构),每个文件都需要属于一个包
- 有垃圾回收机制(C有内存泄露,会很快吃光内存),不需要处理垃圾
- 天然并发
- 语言层面即可支持
- 使用goroutine实现大并发,高效利用多核,是轻量级线程
- 基于CPS(Communicating Sequential Processes)实现
- 吸收了管道通信机制,用于实现不同gotoute之间的通信
- 函数可以返回多个值GO
1
2
3
4
5
6
7
8
9
10
11
12
13package main// 想当于这个文件属于main包
import "fmt"// 这里是导入一个包
// 第一个括号是参数,变量名写前边,变量类型写后边
// 第二个括号是返回值类型
// return直接返回两个值即可
func getSumAndSub(n1 int, n2 int) (int, int) {
sum := n1 + n2// 可以不写分号,编译器编译时自动添加
sub := n1 - n2
return sum, sub
} - 有切片slice(相当于动态数组或Java的集合概念),延时执行defer
go语言的基础知识
常用单词
- SDK(Software Development Kit)
- 包括编译,开发工具和API文档
- fmt(format)
- escape(转义)
- API(Application Program Interface,就是各个包下的函数)
- Dos(Disk Operating System)
go的SDK目录解释
YAML
1 | bin: go的指令 |
go的环境变量
YAML
1 | GOROOT: SDK安装根目录 |
go的项目目录树
YAML
1 | GOPATH: 工作目录 |
调用一个函数的时候需要先import包,然后包名.函数名
go的注意事项
- 不需要写分号,写了也不算有问题
- 定义了没用到的变量或import了不用的包,编译不通过
- 块注释不能嵌套
- 左大括号不能另起一行
- 一行不超过80字符,否则换行
go的常用网站
- 官方网址
- 常用代码写法
- 函数方法API(被墙),在Index下有常用方法
- 函数方法API(国内)
- 基础知识参考
编程技巧
安装与运行
- linux软件安装在
/opt下 - 执行某文件找不到是因为在当前目录找不到,同时也在环境变量里找不到
- 源文件编译后变大是因为同时打包了很多依赖程序
- \r与\n的区别
- \r是回车不换行,后边的字直接覆盖前边的字,如
123\r4就变成了423 - \n是直接换行
- \r是回车不换行,后边的字直接覆盖前边的字,如
如何快速深入学习一个新技术或者一个知识点
- 学习原因
- 有某些需求,需要解决某些问题
- 问题解决
- 现有技术可以解决就先解决
- 现有技术有缺陷,再学习新技术
- 新技术入门所需掌握的内容
- 原理
- 基本语法
- 快速入门案例
- 学习新技术的细节
- 如何使用更规范
- 使用时的陷阱
- 使用时需要注意什么
建议
做了才会,而不是会了才做
- 本文标题:go语言环境及基本常识1
- 创建时间:2022-01-12 14:14:26
- 本文链接:https://blog.212490197.xyz/article/program/golang/go-basic-knowledge-study-0/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
评论