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语言学习笔记(一)的更多相关文章

  1. HTML语言学习笔记(会更新)

    # HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...

  2. 2017-04-21周C语言学习笔记

    C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...

  3. 2017-05-4-C语言学习笔记

    C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...

  4. Haskell语言学习笔记(88)语言扩展(1)

    ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...

  5. Go语言学习笔记十三: Map集合

    Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...

  6. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

  7. Go语言学习笔记十一: 切片(slice)

    Go语言学习笔记十一: 切片(slice) 切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用.不像java语言写起来就比较繁琐.不过我觉得未来java语法也会支持的. 定义切片 ...

  8. Go语言学习笔记十: 结构体

    Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...

  9. Go语言学习笔记九: 指针

    Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这 ...

随机推荐

  1. Centos 7 .Net core后台守护进程Supervisor配置

    环境: Centos 7 已安装.Net core 2.0.0  .Net core 1.1.2 1.Supervisor安装 yum 安装 yum install supervisor (阿里云验证 ...

  2. shell函数-3

    1.shell函数 1.1.shell函数定义 对于重复出现的代码,在shell中可以定义函数,然后在指定的地方调用即可.便于代码复用,提高开发效率. 定义函数的语法如下: function 函数名( ...

  3. 复杂的QR_code

    Topic Link http://ctf5.shiyanbar.com/stega/QR_code.png 1)打开链接之后发现是一个二维码,扫描之后出现一个字符串 secret is here 2 ...

  4. JavaSE之Long 详解 Long的方法简介以及用法

    基本功能 Long 类在对象中包装了基本类型 long 的值 每个 Long 类型的对象都包含一个 long 类型的字段 static long MAX_VALUE long 8个字节最大值2^63- ...

  5. Shiro+easyUI+SpringMVC实现登录认证

      最近在做一个小项目,其中认证这块使用shiro+SpringMVC+easyUI,因为easyUI在提交数据的时候使用的是ajax的异步提交,所以shiro在处理数据的时候需要重写FormAuth ...

  6. Docker公共&本地镜像仓库(七)--技术流ken

    分发镜像 我们已经会构建自己的镜像了,那么如果在多个docker主机上使用镜像那?有如下的几种可用的方法: 用相同的Dockerfile在其他host上构建镜像 将镜像上传到公共registry(比如 ...

  7. 第60章 设备流交互服务 - Identity Server 4 中文文档(v1.0.0)

    该IDeviceFlowInteractionService接口旨在提供用户界面用于在设备流授权期间与IdentityServer通信的服务.它可以从依赖注入系统获得,通常作为构造函数参数注入到Ide ...

  8. PHP数组array_multisort排序详解

    今天特意再看了下官网的介绍,对它的多个数组的排序还是每台理解,找了些资料深入理解了下,在此总结下. PHP中array_multisort函数对多个数组或多维数组进行排序,关联(string)键名保持 ...

  9. C# 给现有PDF文档添加页眉、页脚

    概述 页眉页脚是一篇完整.精致的文档的重要组成部分.在页眉页脚处,可以呈现的内容很多,如公司名称.页码.工作表名.日期.图片,如LOGO.标记等.在之前的文章中介绍了如何通过新建一页空白PDF页来添加 ...

  10. Java开发笔记(七十五)异常的处理:扔出与捕捉

    前面介绍的几种异常(不包含错误),编码的时候没认真看还发现不了,直到程序运行到特定的代码跑不下去了,程序员才会恍然大悟:原来这里的代码逻辑有问题.像这些在运行的时候才暴露出来的异常,又被称作“运行时异 ...