1-go介绍、go开发环境搭建、命名规范
2023-12-14 22:50:07
1 go介绍
# 1 谷歌公司09年推出
-python :89年
-java:90年
# 2 Go是静态 强类型 语言,是区别于解析型语言的编译型语言(静态:有编译过程 强类型:不同类型不允许直接运算)
-python:动态 强类型
-必须手动转类型,再做运算
-不同类型之间不允许之间运算 'asdfasd'+19
-js :动态弱类型
-java : 字符串+数字---》语法支持---》静态态强类型---》java 隐士类型转换
# 3 go 源代码---》编译成---》可执行文件
-之前编译型语言不跨平台
-redis:源码编译安装---》把源码下载---》make&&make install ---》编译成当前平台的可执行文件
-java---》编译型语言---》编译到中间状态---》不是可执行文件---》字节码文件--->不能直接运行在操作系统之上---》运行在 java虚拟机上----》 运行java项目---》装jdk
# 4 go 跨平台的编译型语言
win 编译出 linux的可执行文件---》交叉编译
# 5 语法接近C语言
# 6 管道(channel),切片(slice),并发(routine)
# 7 有垃圾回收的机制 三色标记法
# 8 支持面向对象和面向过程的编程模式
-go 的面向对象不是传统意义上的面向对象
# 9 发展史
2009年11月7日 weekly.2009-11-06 —— 早期的版本
2012年3月28日 go1 —— 稳定版版的发布
2013年5月14日 go1.1 —— 语言本身的变化、库的变化等。
2013年12月01日 go1.2 —— 提供更好的调度和一个新的语言特性。
2014年6月18日 go1.3 —— 主要是在实现的工作上的变化,以及精准的垃圾回收。
2014年12月10日 go1.4 —— 包含了2个很小的语言变更。
------------
2015年8月19日 go1.5 —— 实现的架构变化,同时保留了和旧版本的兼容性,本次更新中移除了”最后残余的C代码”。
2016年2月7日 go1.6 —— 语言本身、运行时、和库的实现的变化。
2016年8月15日 go1.7 —— 标准库有显着的性能改进和变化。
2017年2月26日 go1.8 —— 标准库有显着的性能改进和变化。
2017年8月24日 go1.9 —— 是包含语言,标准库,以及运行时的诸多变化。这个版本中的大部分工作都是对运行时和工具的改进。
2018年2月16日 go1.10 —— 大部分更改都在工具链,运行时和库的实现中。
--------
2018年8月24日 go1.11 —— modules和WebAssembly支持。
2019 年 2 月 go 1.12 —— modules和WebAssembly支持。
2019 年 2 月 go 1.12— — 基于 analysi包重写了 go vet`命令,为开发者写自己的检查器提供了更大的灵活性
2019 年 9 月 go 1.13— — 改进了 sync 包中的 Pool,在 gc 运行时不会清除 pool。它引进了一个缓存来清理两次 gc 运行时都没有被引用的 pool 中的实例。重写了逃逸分析,减少了 Go 程序中堆上的内存申请的空间
2020 年 2 月 go 1.14— — 现在 Go Module 已经可以用于生产环境,鼓励所有用户迁移到 Module。该版本支持嵌入具有重叠方法集的接口。性能方面做了较大的改进,包括:进一步提升 defer 性能、页分配器更高效,同时 timer 也更高效。现在,Goroutine 支持异步抢占
https://golang.google.cn/dl/
目前最新:1.21.5
2 go开发环境搭建
# 开发环境
-go sdk---》内置包:https://golang.google.cn/dl/
-编辑器:goland
# 关于编辑器
-Jetbrains公司全家桶---》收费的
-Goland
-pycharm
-IDEA
-webstorm
-破解方案一样
-vscode 微软的---》免费---》前端,python,go
-sublimetext
# golang和goland有什么区别?
编程语言
ide
# 运行环境---》不需要搭建
#1 go sdk 安装一路下一步,安装完成, 安装目录会被加入到环境变量,在任意路径敲 go 都有反应
# go version
go version go1.21.5 windows/amd64
# 2 安装goland---》自行安装
3 第一个helloworld
# 编译代码---》可执行文件
go build demo01.go # 编译
demo01.exe # 运行
# 编译并运行
go run demo01.go # 编译的文件,当前路径看不到,放在别的位置,用完删除的
# goland ---》右键运行
### 代码
package main # 声明go文件所属包是main包--》go运行必须有入口--》main包下的main函数
import "fmt" # 表示导入fmt包 等同于:import os 打印函数在fmt包下---》python的在 内置函print
func main() { # main函数
fmt.Println("hello world") # 打印hello world
}
4 命名规范
# 变量定义规范
Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:
1 一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线
2 大写字母和小写字母是不同的:Name和name是两个不同的变量
3 关键字和保留字都不建议用作变量名
# 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 保留字 37个保留字,主要对应内建的常量、类型和函数
内建常量: true false iota nil
内建类型: int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune string error
内建函数: make len cap new append copy close delete
complex real imag
panic recover
# 注意:
-go中定义变量 建议使用驼峰,不建议使用 _
-go文件定义 建议使用 下划线,不建议用 驼峰
文章来源:https://blog.csdn.net/weixin_44145338/article/details/135005075
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!