内容概要
- Go语言介绍
- Go语言环境搭建
- 第一个hello world
- 变量的定义与使用
- 变量命名规范
1、Go语言介绍
-python:1989年
-java:1990年
-Golang 编程语言
-Goland jebrains公司出的编辑器,写go代码的,跟pychrm是一个东西
解析型语言——源代码是先翻译为中间代码,然后由解析器对代码进行解释执行
编译型语言——源代码编译生成机器语言,然后由机器直接执行机器码即可执行
python 动态 强类型,你定义函数时,如何规定类型
-强类型:不同类型之间不能直接运行,需要做类型转换,数字+字符串
java 静态 强类型---》有的人说 它不是编译型---》编译成字节码文件
-数字+字符串 可以---》违背了强类型?---》隐士类型转换:自动识别并做类型转换,运算
js 动态 弱类型
-数字+字符串 允许
跨平台的编译型语言 ---->夸平台 编译
-python 夸平台,解释型,解释器有不通平台,代码运行在不同平台
-你们给客户开发的程序,部署在客户机器上---》你的代码,客户就能拿到--》泄露代码了
-没有特别好的方案:
1 直接打包成可执行文件 pipinstall
2 有些第三方代码加密,兼容性很差
3 把代码放到docker镜像中-->docker run -e pasword=123
-从环境变量把password取出来,程序中执行之前先校验这个秘密是否授权,如果没授权,容器不能运行
4 把程序运行起来---》硬盘加载到了内存--->直接把源代码删掉---》该运行运行
-js ---》代码混淆---》正常格式的js---》坨到一起,变量函数名都是魔鬼变量--》压缩
-js逆向
-go 跨平台 编译
-可以在不同平台编译出不同平台的可执行文件--->交叉编译
-c 不夸平台 在不同平台编译
-redis--》源码下载---》make & make install
语法接近C语言
管道(channel),切片(slice),并发(routine)
有垃圾回收的机制
支持面向对象和面向过程的编程模式---》面向对象 有类的概念,没有语法
2009年11月7日 weekly.2009-11-06 —— 早期的版本
2012年3月28日 go 1 —— 稳定版版的发布
2015年8月19日 go 1.5 —— 实现的架构变化,同时保留了和旧版本的兼容性,本次更新中移除了”最后残余的C代码”---》go早期底层有c写的(java,python等都是这样的),再往上层不用了,实现了:【自举】--》自己写自己
2018年8月24日 go 1.11 —— modules和WebAssembly支持
-加入了对 go mod 的支持-->由于 go 语言包管理很乱:引入了第三方:vender,mod机制
-GO111MODULE = off, on, auto
2019 年 9 月 go 1.13 — — 改进了 sync 包中的 Pool,在 gc 运行时不会清除 pool。它引进了一个缓存来清理两次 gc 运行时都没有被引用的 pool 中的实例。重写了逃逸分析,减少了 Go 程序中堆上的内存申请的空间--->GO111MODULE默认开启
-别人写的程序---》一般都要求1.13及以上版本
- Go Module 已经可以用于生产环境,鼓励所有用户迁移到 Module
2022年 1.18 版 加入了对【泛型】的支持(python一切皆泛型)
-哪些公司在用
-Google
-国内互联网公司,非常喜欢用go,小公司 python---》go
-七牛:国内最早做 go 实践的,国内镜像(豆瓣源--->python写的)
-B站:原来主站php 流量---》游戏(占总营收80%)--> go替换了---》代码泄露了19年
-go 微服务框架》 go-kratos框架
-字节:大量的go,微服务框架--Kitex
-阿里:大部分java,自研的jvm虚拟机---》杭州的公司大部分都用java--》阿里离职了创业
-腾讯: 用
-百度: 用
-区块链公司
-服务端,微服务:抢java市场
-自动化运维:抢python市场
-区块链
-开源的并发高的软件,用go写的
-k8s
-docker
-普罗米修斯---》运维,监控软件---》zabbix--》php
-区块链:BTCD 是用go语言实现的完整节点的比特币实现
-为什么go在区块链界很火---》完整的区块链解决方案代码第一款go开源了
-拿着人家开源的改改名字,二次开发---》做自己的币--》工资给的高
-etcd ,consul。。
-jumpserver :跳板机,堡垒机 python
-ansible :python写的,基于ssh自动化运维工具,远程操作几百台机器,python
-Jenkins : java写的
-salstack :python写的,跟ansible一个类型产品
-zabbix :监控软件 php写的
-普罗米修斯 :监控软件 go写的
GOPATH 的工作区包含 bin,src,和 pkg这三个:
src —— 源码(包含第三方的和自己项目的)
bin —— 编译生成的可执行程序
pkg —— 编译时生成的对象文件
服务端开发
分布式系统,微服务
网络编程
区块链开发
内存KV数据库,例如boltDB、levelDB
云平台
Go语言将登上语言榜前列,与python和Java并列前三甲 ---》10名开外
Go语言称霸云计算
Go将统治下一个10年
目前Go语言已经⼴泛应用于人工智能、云计算开发、容器虚拟化、⼤数据开发、数据分析及科学计算、运维开发、爬虫开发、游戏开发等领域。
Go语言简单易学,天生支持并发,完美契合当下高并发的互联网生态
2、Go语言环境搭建
-下载地址:https:
-一路下一步安装--》已经把安装路径加入到环境变量了--》同时gopath的bin路径也自动加入到啊环境变量了
-python 开发用pycharm,做数据分析 一般用:Anconda:jupyter,vscode
-go 个人推荐用 goland ---》收费---》jetbrains公司--》与pycharm同出一系
-跟pycharm 之前的使用习惯完全一样,只是换了个语法写
-vscode 免费可以用---》但是写项目还是 goland
-下载编辑器:https:
-一路下一步:试用30天,永久试用-->pycharm同理
go -version
go env
goroot:go-sdk安装路径
gopath:一般把代码放在里面
GOPATH=C:\Users\liuqingzheng\go
GOROOT=C:\Program Files\Go
GO111MODULE=on
GOHOSTARCH=amd64
GOHOSTOS=windows
GOPROXY=https:


3、第一个helloworld
package main
import "fmt"
func main() {
fmt.Println("HELLO WORLD")
}
go build + go文件名
编译成可执行文件,直接 文件名+回车 执行即可
go run go文件
-实际上,没有a...,但是在goland中,编辑器给你自动提示的,你要传什么参数(编译型语言独有),参数类型是什么,vscode就没有

4、变量的定义和使用
package main
import "fmt"
func main() {
var name = "lqz"
name, age := "pyy", 19
fmt.Println(name, age)
}
5、变量命名规范
Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:
1 一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线
2 大写字母和小写字母是不同的:Name和name是两个不同的变量
3 关键字和保留字都不建议用作变量名 --->内置函数,包,关键字不能做变量名
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
目前你认识的:func,var, package,if,else,break,continue
python 中的 and or 在go中不是关键字
对比 python 的 input,print,可以做变量名,但是不建议
内建常量: 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变量定义推荐用驼峰 AgeOfPerson java中也是
-python中推荐下划线 age_of_person
-go大小写有特殊含义
-go的文件命名推荐用下划线
-go变量定义推荐用驼峰,go的文件命名推荐用下划线
-python 变量和py文件都推荐用下划线
-java 变量和java文件都推荐用驼峰
-go 变量定义推荐用驼峰,go的文件命名推荐用下划线
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)