Go语言介绍、Go开发环境搭建、第一个helloworld、变量命名规范、变量的定义和使用
1 Go语言介绍
#Go语言介绍 Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言 Go是【静态 强类型】语言,是区别于解析型语言的编译型语言(静态:类型固定 强类型:不同类型不允许直接运算) 解析型语言——源代由解析器对代码进行解释执行 编译型语言——源代码编译生成机器语言,然后由机器直接执行机器码即可执行 #编译型: c,java,c++,c#,go 编译成可执行文件---》在操作系统上运行,不需要装任何东西 # 解释型: python,nodejs,php # java: java有编译过程---》没有编译成机器语言---》字节码文件,机器识别不了---》java虚拟机:jvm能识别 运行java必须要有jvm jvm:java虚拟机 jre:java运行时环境 jdk:java开发环境 #python解释型:python---》可执行文件----》pipinstaller -https://zhuanlan.zhihu.com/p/430490285 # python代码仿泄露方案 -方案一:启动起来,把源代码删除 -方案二:pipinstaller 打包成可执行文件 -方案三:做到docker镜像中---》运行容器---》-e password=授权码 #python动态强类型 #二 Go语言特性 -跨平台 编译型语言 -语法接近C语言 -管道(channel),切片(slice),并发(routine) -有垃圾回收的机制 -支持面向对象和面向过程的编程模式 #Go语言发展 -2015年8月19日 go1.5 —— 实现的架构变化,同时保留了和旧版本的兼容性,本次更新中移除了”最后残余的C代码”---》以后再写go不用c写了,用go写---》语言的自举 -2018年8月24日 go1.11 —— modules和WebAssembly支持 go mod模式 包管理 -最新 1.20版 # Go语言应用 -k8s:go写的 -docker:go写的 -七牛:上海的-ceo-许式伟-》go+ #应用领域 服务开发、并发、分布式、微服务等方向,自动化运维,区块链 服务端开发 分布式系统,微服务 网络编程 区块链开发 内存KV数据库,例如boltDB、levelDB 云平台 # Go语言发展前景 Go语言将登上语言榜前列,与C和Java并列前三甲 Go语言称霸云计算 Go将统治下一个10年 目前Go语言已经⼴泛应用于人工智能、云计算开发、容器虚拟化、⼤数据开发、数据分析及科学计算、运维开发、爬虫开发、游戏开发等领域。 Go语言简单易学,天生支持并发,完美契合当下高并发的互联网生态
2 Go开发环境搭建
# go 的sdk---》开发环境 ----》 go1.20.3.windows-amd64.msi # go 编辑器---》goland(jetbrains系列全家桶),vscode---》goland-2020.2.4.exe # go1.20.3.windows-amd64.msi
3 第一个helloworld
# 创建项目 # 创建一个go文件 # 写代码
package main // 声明这个go文件属于哪个包,main有特殊含义,一个项目要运行必须要有main包,运行的入口是main包下的main函数 // 表示导入fmt包,自动导入的,goland自动导入的,使用了哪个包,编辑器会自动导入 // 包导入,不使用,会报错,编译不过 import "fmt" // func 定义一个函数 ,main 是函数名,没有参数,没有返回值,整个项目入口 func main() { // 在控制台输出helloworld fmt.Println("helloworld") // a... 提示的,意思是传的helloworld实参,给了a } // 编译代码---》编译成可执行文件---》默认编译成当前平台可执行文件---》支持跨平台编译---》想编译出linux的---》交叉编译 // 编译代码---》编译成可执行文件---》默认编译成当前平台可执行文件---》支持跨平台编译---》想编译出linux的---》交叉编译 //编译 go build 文件名----》编译成可执行文件 // 运行,直接运行 双击 // 开发阶段----》编译并运行---》生成可执行文件,不再当前路径,用完就删除 // 编辑器有个快捷运行方式,右键运行
4 变量命名规范
// Go语言中的函数名、变量名、常量名、类型名和包名等所有的命名,都遵循一个简单的命名规则: 1 一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线 2 大写字母和小写字母是不同的:Name和name是两个不同的变量(区分大小写,但是go的大写有特殊含义) 3 关键字和保留字都不建议用作变量名 // 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 // 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文件命令:建议用下划线 // python 都用下划线 // java 都是驼峰
5 变量的定义和使用
package main import "fmt" // 变量定义 func main() { //1 完整定义 // var关键字 变量名 变量类型 = 变量值 //var name string = "lqz" //fmt.Println(name) // //var age int = 19 //fmt.Println(age) // 2 变量定义了,必须使用,否则报错 // 3 类型推导(不写类型)---》自动推导出lqz 是字符串类型 //var name = "lqz" //name = "pyy" //name = 19 //fmt.Println(name) // 4 虽然是类型推导出来的,但是是有类型的,并且后期不能变换类型 // 变量只要定义了,类型就固定了。后期不能改变 //5 简略声明 ,省略var 省略类型,必须使用 := //name:= "lqz" //fmt.Println(name) // 6 一次性声明多个变量(其实就是基于上面三种变量定义方式的变形) // 6.1 完整定义 //var name, age, hobby string = "lqz", "19", "篮球" //var ( // name string = "lqz" // age int = 19 // hobby string = "篮球" //) //fmt.Println(name) //fmt.Println(age) //fmt.Println(hobby) // 6.2 类型推导 //var name, age, hobby = "lqz", 19, "篮球" //var( // name="lqz" // age=19 // hobby="篮球" //) //fmt.Println(name) //fmt.Println(age) //fmt.Println(hobby) // 6.3 简略声明 //name, age, hobby := "lqz", 19, "篮球" //fmt.Println(name) //fmt.Println(age) //fmt.Println(hobby) // 6.4 6.1和6.2混合 //var( // name="lqz" // age int=19 // hobby="篮球" //) //fmt.Println(name) //fmt.Println(age) //fmt.Println(hobby) // 7 变量不能重复定义三种定义方式) //var name = "lqz" ////var name string="pyy" ////name:="pyy" //name, age := "pyy", 19 //fmt.Println(name) //fmt.Println(age) // 8 变量可以先定义在赋值,必须使用完整定义(方式一) //var name string //默认值 空字符串 //var age int // 默认值是0 //var age 不行 //name := 不行 //age = 19 //fmt.Println(name) //fmt.Println(age) // 9 简略声明用的多 a:=10 // 10 查看变量类型 //a := 99 a := "lqz" fmt.Printf("a的值是:%v,类型是:%T", a, a) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」