Go基础(幕客网视频学习笔记)
go语言的特性
- golang是一门开源的编程语言,2007年诞生,2009年11月开始开源。
- golang的特点
- 运行效率高:go是一门编译性的语言,程序再开发完成之后只需要编译一次,后续不需要进行编译。
- 开发效率高,语法比较少,关键字比较少,开发的风格比较简单,限制比较简单
- 部署简单:直接把编译后的文件放到服务器上就能发布服务
- 实现多核并发:通过go语言的关键字
- 内置runtime:介于go语言和系统之间的,可以进行性能监控和GC问题排查
- 强大的标准库和网络库
- 内置强大的gofmt,统一代码风格
- golang的应用
- 服务器编程、虚拟机处理、文件系统、数据打包、处理日志
- 分布式系统、数据库代理、中间件
- 网络编程、API应用
- 云平台
- golang的环境搭建和IDE的安装
- golang语言的目录结构
- bin:可执行文件
- doc:go语言的使用手册
- pkg:
- src:开发使用的源码文件
- goPATH的语言的结构
- src:源码目录
- pkg:go install安装扩展的时候会用到
- bin:可执行文件自动放在bin目录下面
- golang语言的目录结构
- golang的命令行
- go build:用于编译源码文件、代码包、依赖包,能够生成可执行文件,直接执行即可
- go run:可以编译并运行go源码文件
- go get:动态的获取成代码包
- golang的IDE工具
- sublime text:
- Goland:GOROOT是go语言的加载目录、GOPATH是工作空间的位置
- liteide:
Golang的基础语法 - 关键字、标识符、注释、基础结构
- 25个关键字和36个标识符
- 注释分为多行注释(/**/)和单行注释(//)
- package
- package是最基本的分发单位和工程管理中依赖关系的体现
- 每个GO语言源文件的开头都拥有一个package声明,表示源文件所属代码包
- 要生成go语言可执行程序,必须要有main的package包,且必须该包下有main函数
- 同一个路径下面只能存在一个packgage,一个package可以拆分成多个文件组成
- import
- 如果一个main中导入其他包,包将被顺序导入
- 如果导入的包中依赖其他包(包B),会首先导入B包,然后初始化B包中的常量和变量,最后如果B包中有init,会自动执行init();
- 所有导入包完成后才会对main中的常量和变量进行初始化然后执行main中的init函数(如果存在),最后执行main函数。
- 如果一个包被导入多次,而该包只会被导入一次
- import别名
- 将导入的包命名为另一个容易记忆的别名
- 点(.)操作的含义是:点(.)表示的包导入后,调用该包中函数时可以省略前缀包名
- 下划线()含义是:导入该包,但不导入整个包,而是执行该包中的init函数,因此无法通过包名来调用包中的其他函数。使用下划线()操作往往是为了注册包中的引擎,让外部可以方便调用。
- 数据类型
- 说明:类型的零值不是空值,而是某个变量被声明之后的默认值一般情况下,数值类型的默认值是0,布尔类型的值是false,string类型的默认值是空字符串。
- 数值类型、字符串类型、布尔类型(Unsafe.Sizeof(type_value):输出占用的字节,例如int32输出的是4,即32位bit)
- 整数:无符号整型(uint8、unit16、unit32、uint64)和有符号整型(int8、init16、int32、int64)
- 浮点类型:浮点(float32、float64)和复数(conplex64、complex128)
- 其他:字节(byte)、rune(int32的别名)、int(根据系统的位数动态的指定位数,32位系统是32,64位系统是64)、uint、uintptr
- 布尔类型:bool
- 字符串:string(UTF-8编码)
- 变量和常量
- 变量的声明、变量的赋值、变量的声明和赋值同时进行,可以多个变量同时进行
- 分组变量声明:中间的变量之间不需要有逗号
- 全局变量必须使用var关键字,局部变量可以省略
- 特殊变量”_“,可以理解为垃圾桶,在接下来的程序中不需要这个值
- 通过reflect.TypeoOf(变量)来获取变量的类型
- 变量的类型转换
- Go语言中不存在隐式转换类型转换必须都是显式的
- 类型转换只能发生在两种兼容的类型之间,不同类型是不能进行转换的
- 类型转换的格式: [:] = ()
- float转为为int的时候会有精度的损失
- 变量可见性规则
- 大写字母开头的变量是可到导出的,也就是其他包可以读取的,是公用变量
- 小写字母开头的变量就是不可导出的,是私有变量
- 常量
- golang中常量的定义形式
- 显式:const indentifier [type] = value
- 隐式:const identifier = value
- 常量可以使用内置表达式定义,len()、unsafe.SizeOf()
- 常量范围目前只支持布尔型、数字型和字符串
- golang中常量的定义形式
- iota
- iota在const关键字出现的时候将会被重置为0
- const中每新增一行常量声明将使iota技术增加一次
- iota的常用语法
- 跳值使用法:通过下划线()来实现,空行只有下划线()
- 插队使用法:
- 表达式隐式使用法:
- 单行使用法
- go运算符
- 算法运算符:+、-、*、/、%、++、--
- 关系运算符:==、>、<、!=、>=、<=
- 逻辑运算符:&&、||、!
- 按位运算符:&、|、^、<<、>>
- 赋值运算符
转载于:https://www.cnblogs.com/hudiblogs/p/10032598.html
Go基础(幕客网视频学习笔记)相关推荐
- 数据分析与爬虫实战视频——学习笔记(一)(python基础、urllib、超时设置、自动模拟HTTP请求、异常处理、浏览器伪装、代理服务器、新闻爬虫、淘宝登陆和图片爬取)
未经允许,请勿转载. 连载未完成状态 网址: [数据挖掘]2019年最新python3 数据分析与爬虫实战_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili https://www.bilibili ...
- mysql入门很简单系列视频-学习笔记
mysql入门很简单系列视频-学习笔记 视频链接:mysql入门很简单系列视频 https://www.bilibili.com/video/av14920200/ 以前主要就了解DDL.DML.DC ...
- 极客HTTP协议学习笔记破冰篇(1-7)
极客HTTP协议学习笔记破冰篇(1-7) 前言 各篇章笔记链接 一.学习笔记 1.HTTP的前世今生 2.HTTP是什么 3.与HTTP相关的各种概念(上) 4.与HTTP相关的各种概念(下) 5.常 ...
- 传智播客 传智播客.NET视频学习课件
传智播客 传智播客.NET视频学习课件 访问.NET网站了解更多课程详情 http://net.itcast.cn (小提示:为什么本书中超链接打不开?) 此套课件是伴随传智播客.net实况教学视频 ...
- 影像组学视频学习笔记(42)-影像组学特征提取问题解决过程复现、Li‘s have a solution and plan.
作者:北欧森林 链接:https://www.jianshu.com/p/c3e6de2f79b3 来源:简书,已获转载授权 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(42)主要 ...
- 影像组学视频学习笔记(34)-使用3D Slicer软件提取影像组学特征、Li‘s have a solution and plan.
作者:北欧森林 链接:https://www.jianshu.com/p/afcd06221ea4 来源:简书,已获授权转载 RadiomicsWorld.com "影像组学世界" ...
- Unity2019 从零到精通视频学习笔记
Unity2019 从零到精通视频学习笔记 该文对Unity2019 做简单的自学了解,并做相应的笔记 文章目录 Unity2019 从零到精通视频学习笔记 一.C#基础回顾 基本数据结构 面向对象数 ...
- Github与GitKraken的基础使用(一)[学习笔记]
Github与GitKraken的基础使用(一)[学习笔记] Git与Github 使用Github.com 1.仓库(repository) 2.创建一个repo 3.在仓库中添加文件 4. Com ...
- 影像组学视频学习笔记(41)-如何使用软件提取组学特征、Li‘s have a solution and plan.
作者:北欧森林 链接:https://www.jianshu.com/p/72186eb3e395 来源:简书,已获授权转载 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(41)主要 ...
最新文章
- 易邮邮箱服务器的安装和配置
- 将行政区域导入SQL SERVER
- 跳表SkipList
- 接口隔离原则(设计模式4)
- Service Request Account field in CRM and C4C
- dubbo-Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
- 无法初始化Winsock2.2处理
- 【算法】动态规划笔记-----柳婼 の blog
- mrp手机qq2008下载-MRP格式的手机QQ2008软件介绍及如何正确安装MRPQQ2008挂Q版
- excel宏计算机,Excel怎么设置宏 Excel宏设置图文教程-电脑教程
- SketchUp插件|FredoGhost幻影替身插件最新版免费下载及介绍(轻量化草图大师模型)
- Start11软件1.0版发布:如果适应了win10或win7的系统,可一键将win11改回
- php被挂马,近日报网站被挂马的解决方法
- android 根据基站测距,无线测距基站
- gitee上贡献度不显示问题的设置
- 用c语言用*组成C字母,C语言字符集由字母,数字,空格,标点符号和特殊字符组成...
- 27岁,大专学历,女程序员内心的感受和行业焦虑
- 计算 11+12+13+...+m python
- python class tynu()_Task02-BaseLine.ipynb
- Planet比Google earth更好用的地图下载神器Basemaps Viewer不用写代码全球高清影像框选下载tif格式
热门文章
- there can be only one auto column and it must be defined as a key原因以及解决办法
- 【Docker】——镜像
- 解决pnpm 不是内部或外部命令的问题(pnpm安装教程)
- ssm练习第二天_项目拆分moudle_基本增删改查_批量删除_一对一级联查询
- 敏捷开发篇--Agile Development-自用
- Linux 文件系统的工作原理深度透析
- 在HBuilder创建前端web项目时,图片加载不出来,怎么解决?
- c语言合法自定义标识符_C语言合法标识符有哪些
- GitHub 终端面基交友的新神器
- mysqld,mysqld_safe,mysql.server,mysqladmin,mysql,service mysql的理解