GO语言学习笔记(一)
GO语言学习笔记
1.数组切片slice:可动态增长的数组
2.错误处理流程关键字:defer panic recover
3.变量的初始化:以下效果一样
`var a int = 10`
`var a = 10`
`a := 10` (推荐写法)
注意::= 左侧的变量不能是被声明过的
4.定义常量:const关键字定义常量
5.以大写字母开头的常量在包外可见
6.Go语言内置的数据类型:
- 布尔型 bool
- 整形 int8、int16
- 浮点型 float32、64
- 复数 complex64
- 字符串 string
- 字符类型 rune
- 错误类型 error
- 指针 pointer
- 数组 array
- 切片 slice
- 字典 map
- 通道 chan
- 结构体 struct
- 接口 interface
7.字符串的声明和赋值
- var str string
- str = "alisleepy"
- 取字符串第一个字符:ch := str[0]
8.获取字符串长度函数:len(str)
9.获取数组长度的函数:arrLength := len(array)
10.创建切片slice:
1.基于已有的数组:
`var myArr [5] int = [5] int{1,2,3,4,5}`
`var myslice [] int = myArr[:]` //基于myArr所有元素创建切片
`myslice = myArr[:5]` //基于前五个数组元素创建切片
2.直接创建切片:make
`myslice := make([] int 5)` //创建初始元素个数为5的数组切片,元素初始值为0
11.获取数组切片分配的空间大小:cap(myslice)
12.获取数组切片中当前存储的元素个数:len(myslice)
13.常见问题1:定义的数据没使用,编译出错,所以定义的数据必须使用,不使用就不需要定义
14.代码写完后执行: 在代码当前目录cmd执行:go run test.go 就可以看到结果
15.编辑代码: 在代码当前目录cmd执行: go build test.go 就可以看到生成的.exe文件
16.切片新增元素,即追加元素: append(被增加的切片,追加的元素)
第二个参数:追加的元素是一个不定参数,可以直接是多个增加的元素,也可以是一个数组切片
例如:原切片:slice := make([] int, 5, 10) //切片有五个元素,预留了10个存储空间
原切片追加元素:slice := append(slice, 1, 2, 3) //直接增加元素
第二种追加方法:在slice后追加slice2
slice2 := make([] int{8,9,10}) //三个元素的切片
slice := append(alice, slice2...) //**注意,在参数2后边有三个点
17.基于数组切片创建数组切片:创建数组切片不仅可以基于数组,还可以基于已有的切片创建新的切片
例如:
oldslice := [] int{1,2,3,4,5} //已有的切片
newslice := oldslice[:3] //基于oldslice的前三个元素创建的新的切片
18.切片的内容复制:copy(slice1, slice2) //把slice2的内容复制给slice1,复制时两个切片不一样大,按照较小的数组切片的元素个数进行复制,比如,slice1有5个元素,slice2有3个元素,执行上述函数,只会讲slice2的3个元素到slice1中
GO语言学习笔记(一)的更多相关文章
- HTML语言学习笔记(会更新)
# HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...
- 2017-04-21周C语言学习笔记
C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...
- 2017-05-4-C语言学习笔记
C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...
- Haskell语言学习笔记(88)语言扩展(1)
ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...
- Go语言学习笔记十三: Map集合
Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...
- Go语言学习笔记十二: 范围(Range)
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...
- Go语言学习笔记十一: 切片(slice)
Go语言学习笔记十一: 切片(slice) 切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用.不像java语言写起来就比较繁琐.不过我觉得未来java语法也会支持的. 定义切片 ...
- Go语言学习笔记十: 结构体
Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...
- Go语言学习笔记九: 指针
Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这 ...
随机推荐
- Git的使用--如何将本地项目上传到Github(三种简单、方便的方法)
一.第一种方法: 1.首先你需要一个github账号,所以还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具,这里给出下载地址,下载后一路(傻瓜式安装) ...
- Kafka Producer源码简述
接着上文kafka的简述,这一章我们一探kafka生产者是如何发送消息到消息服务器的. 代码的入口还是从 kafkaTemplate.send开始 最终我们就会到 org.springframewor ...
- OAuth2.0 原理简介
写在前面: 在正式介绍OAuth2.0之前我们先来看一个场景:小李是一个文艺小青年, 经常喜欢出去旅游并且把自己旅行中的美景照片分享到各大社交网站上,比如朋友圈,新浪微博.小李马上要向女朋友求婚了,他 ...
- web前端安全
之前对web前端安全进行了总结,想给大家分享一下,有不对的地方,大家多多交流,由于写在了PPT上,只好给大家一张一张粘上来,希望大家不要在意,了解知识为主
- NSCTF web200
Topic Link http://ctf5.shiyanbar.com/web/web200.jpg 1) 分析代码可知a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQ ...
- 开发函数计算的正确姿势 —— 使用 Fun Local 本地运行与调试
前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算 ...
- 阿里云ACE共创空间——MQ消息队列产品测试
一.产品背景消息队列是阿里巴巴集团自主研发的专业消息中间件. 产品基于高可用分布式集群技术,提供消息订阅和发布.消息轨迹查询.定时(延时)消息.资源统计.监控报警等一系列消息云服务,是企业级互联网架构 ...
- 深耕品质,腾讯WeTest《2018中国移动游戏质量白皮书》正式发布
本文由云+社区发表 作者:腾讯WeTest 原文链接:https://wetest.qq.com/lab/view/437.html 对于游戏行业的不少人来说,2018年是一个多事之秋. 放眼大局,游 ...
- .Net语言 APP开发平台——Smobiler学习日志:如何在手机中调用邮件发送接口
最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 二.发送邮件代码 VB: Pr ...
- Flask 系列之 优化项目结构
说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 完善环境配置,添加 异常请求 处理 实现 400.404 ...