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的命令行
    • 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()
      • 常量范围目前只支持布尔型、数字型和字符串
    • iota
      • iota在const关键字出现的时候将会被重置为0
      • const中每新增一行常量声明将使iota技术增加一次
      • iota的常用语法
        • 跳值使用法:通过下划线()来实现,空行只有下划线(
        • 插队使用法:
        • 表达式隐式使用法:
        • 单行使用法
    • go运算符
      • 算法运算符:+、-、*、/、%、++、--
      • 关系运算符:==、>、<、!=、>=、<=
      • 逻辑运算符:&&、||、!
      • 按位运算符:&、|、^、<<、>>
      • 赋值运算符

转载于:https://www.cnblogs.com/hudiblogs/p/10032598.html

Go基础(幕客网视频学习笔记)相关推荐

  1. 数据分析与爬虫实战视频——学习笔记(一)(python基础、urllib、超时设置、自动模拟HTTP请求、异常处理、浏览器伪装、代理服务器、新闻爬虫、淘宝登陆和图片爬取)

    未经允许,请勿转载. 连载未完成状态 网址: [数据挖掘]2019年最新python3 数据分析与爬虫实战_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili https://www.bilibili ...

  2. mysql入门很简单系列视频-学习笔记

    mysql入门很简单系列视频-学习笔记 视频链接:mysql入门很简单系列视频 https://www.bilibili.com/video/av14920200/ 以前主要就了解DDL.DML.DC ...

  3. 极客HTTP协议学习笔记破冰篇(1-7)

    极客HTTP协议学习笔记破冰篇(1-7) 前言 各篇章笔记链接 一.学习笔记 1.HTTP的前世今生 2.HTTP是什么 3.与HTTP相关的各种概念(上) 4.与HTTP相关的各种概念(下) 5.常 ...

  4. 传智播客 传智播客.NET视频学习课件

    传智播客 传智播客.NET视频学习课件 访问.NET网站了解更多课程详情 http://net.itcast.cn (小提示:为什么本书中超链接打不开?) 此套课件是伴随传智播客.net实况教学视频 ...

  5. 影像组学视频学习笔记(42)-影像组学特征提取问题解决过程复现、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/c3e6de2f79b3 来源:简书,已获转载授权 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(42)主要 ...

  6. 影像组学视频学习笔记(34)-使用3D Slicer软件提取影像组学特征、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/afcd06221ea4 来源:简书,已获授权转载 RadiomicsWorld.com "影像组学世界" ...

  7. Unity2019 从零到精通视频学习笔记

    Unity2019 从零到精通视频学习笔记 该文对Unity2019 做简单的自学了解,并做相应的笔记 文章目录 Unity2019 从零到精通视频学习笔记 一.C#基础回顾 基本数据结构 面向对象数 ...

  8. Github与GitKraken的基础使用(一)[学习笔记]

    Github与GitKraken的基础使用(一)[学习笔记] Git与Github 使用Github.com 1.仓库(repository) 2.创建一个repo 3.在仓库中添加文件 4. Com ...

  9. 影像组学视频学习笔记(41)-如何使用软件提取组学特征、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/72186eb3e395 来源:简书,已获授权转载 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(41)主要 ...

最新文章

  1. 易邮邮箱服务器的安装和配置
  2. 将行政区域导入SQL SERVER
  3. 跳表SkipList
  4. 接口隔离原则(设计模式4)
  5. Service Request Account field in CRM and C4C
  6. dubbo-Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
  7. 无法初始化Winsock2.2处理
  8. 【算法】动态规划笔记-----柳婼 の blog
  9. mrp手机qq2008下载-MRP格式的手机QQ2008软件介绍及如何正确安装MRPQQ2008挂Q版
  10. excel宏计算机,Excel怎么设置宏 Excel宏设置图文教程-电脑教程
  11. SketchUp插件|FredoGhost幻影替身插件最新版免费下载及介绍(轻量化草图大师模型)
  12. Start11软件1.0版发布:如果适应了win10或win7的系统,可一键将win11改回
  13. php被挂马,近日报网站被挂马的解决方法
  14. android 根据基站测距,无线测距基站
  15. gitee上贡献度不显示问题的设置
  16. 用c语言用*组成C字母,C语言字符集由字母,数字,空格,标点符号和特殊字符组成...
  17. 27岁,大专学历,女程序员内心的感受和行业焦虑
  18. 计算 11+12+13+...+m python
  19. python class tynu()_Task02-BaseLine.ipynb
  20. Planet比Google earth更好用的地图下载神器Basemaps Viewer不用写代码全球高清影像框选下载tif格式

热门文章

  1. there can be only one auto column and it must be defined as a key原因以及解决办法
  2. 【Docker】——镜像
  3. 解决pnpm 不是内部或外部命令的问题(pnpm安装教程)
  4. ssm练习第二天_项目拆分moudle_基本增删改查_批量删除_一对一级联查询
  5. 敏捷开发篇--Agile Development-自用
  6. Linux 文件系统的工作原理深度透析
  7. 在HBuilder创建前端web项目时,图片加载不出来,怎么解决?
  8. c语言合法自定义标识符_C语言合法标识符有哪些
  9. GitHub 终端面基交友的新神器
  10. mysqld,mysqld_safe,mysql.server,mysqladmin,mysql,service mysql的理解