*本文笔记参考:b站【尚硅谷】Golang入门到实战教程

1、go语言的特点

  1. 一个文件是一个包

  2. 垃圾回收机制:内存自动回收,不需开发人员管理

  3. 天然并发:goroutine,轻量级线程,可实现大并发处理,高效利用多核

  4. 吸收了管道通信机制,形成了go语言特有的管道channel,通过管道channel,可以实现不同的goroutine间的相互通信

  5. 函数返回多个值

  6. 新的创新,如切片slice、延迟执行defer等

2、vscode插件安装

进入工作目录\github.com\golang(若没有golang文件夹则自行创建),执行

git clone https://github.com/golang/tools.git

若出现“fatal: unable to access 'GitHub - golang/tools: [mirror] Go Tools': OpenSSL SSL_read: Connection was reset, errno 10054”的报错,

取消ssl验证即可:

git config --global http.sslVerify "false"

下载完成后,可在golang\tool文件夹下看到很多文件

3、值类型和引用类型

1)值类型

基本数据类型int系列、float系列,bool,string,数组,结构体struct。

变量直接存储值,内存通常是在栈区分配。

2)引用类型

指针,slice切片,map,管道chan,interface。

变量存储的是一个地址,这个地址对应的空间才真正存储数据(值),内存通常在上分配。当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,被GC回收。

4、标识符的命名规范

  1. 由26个英文字母大小写、0-9、_组成;数字不可以开头;严格区分大小写;

  2. 下划线“_”本身在go中是一个特殊的标识符,称为空标识符。可以代表任何其他的标识符,但是它对应的值会被忽略(比如,忽略某个返回值)。所以仅能被作为占位符使用,不能作为标识符使用;

  3. 不能以系统关键字作为标识符,比如break、if等。

  • 包名:保持包名与所在文件夹的名字一致,尽量采取有意义的包名,简短,有意义,不要和标准库冲突(如 fmt 等)。

  • 变量名、函数名、常量名:采用驼峰法,如 stuName。

如果变量名、函数名、常量名首字母大写,则可以被其他的包访问;如果首字母小写,则只能在本包中使用(可以简单理解成,首字母大写是共有的,首字母小写是私有的)。在golang中没有public、private等关键字。

5、算术运算符

  • /:整数除与小数除有区别:整数之间做除法,只保留整数部分而舍弃小数部分。如:x := 19 / 5,结果是3

  • %:对一个数取模时,可以等价a % b = a - a / b * b

  • golang的自增自减只能当作一个独立语言使用,不能进行变量定义及赋值运算:a := a++(错误); if i++ > 10(错误)

  • golang的++和--只能写在变量后面,不能写在变量前面。i++(正确);++i(错误)

【Golang】Golang基本介绍相关推荐

  1. golang基础-etcd介绍与使用、etcd存取值、etcd监测数据写入

    关注公众号"风色年代"订阅更多精彩文章,本博大部分文章为转载并已标明原文出处,如有再转敬请保留,请自觉尊重原创作者的劳动成果! golang基础-etcd介绍与使用.etcd存取值 ...

  2. golang 微信支付介绍

    golang微信支付介绍 本次只介绍单个普通商户支付功能 下载微信提供的第三方包wechatpay-go 下载地址 https://github.com/wechatpay-apiv3/wechatp ...

  3. [golang] golang文件读写 os.OpenFile(fileName,os.O_APPEND|os.O_WRONLY,os.ModeAppend)

    [golang] golang文件读写 os.OpenFile(fileName,os.O_APPEND|os.O_WRONLY,os.ModeAppend) 读写文件要用到的OS包 func Ope ...

  4. golang协程介绍和理解

    1.介绍协程前先需要了解进程和线程 进程:程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位. 线程:进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基 ...

  5. golang:context介绍

    我参与11月更文挑战的第10天,活动详情查看:2021最后一次更文挑战 1 前言 最近实现系统的分布式日志与事务管理时,在寻求所谓的全局唯一Goroutine ID无果之后,决定还是简单利用Conte ...

  6. Golang笔记——json介绍

    json 基本介绍 概述 应用场景(示意图) json 数据格式说明 json 数据在线解析 https://www.json.cn/ 网站可以验证一个 json 格式的数据是否正确.尤其是在我们编写 ...

  7. php7与golang,golang 调用 php7

    执行php文件 func Test_exec(t *testing.T) { engine.Initialize() ctx := &engine.Context{ Output: os.St ...

  8. 嵌入式linux golang,golang嵌入式开发

    一.项目概述 本项目是golang嵌入式开发方法,主要是为嵌入式开发平台打造,基于cgo实现了golang对于/dev目录下的uart设备控制,读写等操作.cgo相关部分已封装成golang包,在go ...

  9. [golang] golang实现截取字符串函数SubStr

    golang中没有很多其他语言中的截取字符串函数 现在单独定义一个函数来处理 // 截取字符串,支持多字节字符 // start:起始下标,负数从从尾部开始,最后一个为-1 // length:截取长 ...

  10. [golang]-golang将中文转化为拼音

    导语:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化.想把姓名转化成拼音.因为有些账号即需要中文也需要英文. 官方demo 参考了github.com/mozillazg/go-p ...

最新文章

  1. 厉害了,我的Python,竟然可以这么玩儿......(内含福利)
  2. 初识ES-安装kibana
  3. 【超强、超详细Redis入门教程】
  4. 理解SpringAOP-菜鸟新手入门
  5. lwip---(六)ARP表
  6. 【财经期刊FM-Radio|2020年11月16日】
  7. 网络唤醒Wake On Lan
  8. 局域网常见问题解决方案之你可能没有权限使用网络资源无法访问网上邻居
  9. 计算机快速看图教程,CAD快速看图教程:CAD图纸测量方法集锦
  10. IE5,IE6,IE7,IE8的css兼容性列表
  11. (~ ̄▽ ̄)~罗马数字图表
  12. 尽早取出住房公积金是明智选择
  13. 使用Trove的integration定制化trove镜像
  14. 前台获取服务器ip地址
  15. 台式电脑Window系统使用耳机的喇叭和麦克风方法
  16. 第一章 厕所被揍 校园江湖
  17. linux shell遍历多个数组
  18. 第九届广东省大学生程序设计竞赛排名
  19. GitHub 重磅更新,可以创建免费私有仓库了
  20. uni-app - 电子签字板组件(签名专用写字画板,支持调整写字板 “横纵“ 方向,可调整线条粗细颜色等,Canvas 绘制非常丝滑流畅)完美兼容 H5 APP 小程序,最好用的画板签字教程插件源码

热门文章

  1. Android(one)
  2. Flutter接入融云IM
  3. List<Map<String, Object>> list = new ArrayList<>();Map<String, Object> map = new HashMap<>();
  4. vue.js---zcc
  5. 哈代平衡 连锁不平衡
  6. 全民健身热潮!看B站健身UP主帕梅拉如何“虐”遍千万Z世代年轻人
  7. java实习生面试总结java基础篇
  8. 基于DVWA文件上传,包含漏洞,上传一句话木马基础分析
  9. 积分体系设计必须了解的五个基础问题
  10. 什么是会务签到系统?会务签到系统有什么优势?