美文网首页
GO语言学习

GO语言学习

作者: LiTaYu | 来源:发表于2017-04-12 22:06 被阅读34次

go语言的结构体

声明:
type 结构体名 struct{
x,y int
}
初始化:
未显示初始化结构体变量的,初始值为0

  • var v = vertex{1,2}
  • var v = vertex{x:1}
  • s := []struct {
    i int
    b bool
    }{
    {2, true},
    {3, false},
    {5, true},
    {7, true},
    {11, false},
    {13, true},
    }//可以通过这样使用匿名结构体初始化声明变量

go语言数组

声明:
var array [num]int
array := [num]int{} //先不进行赋值
arrat := []int{1,2,3,4} //不定长数组(切片)
数组切片

  • 通过make()直接创建,参数为:切片类型,切片长度,切片容量(可选),make([]int,5)创建了一个长度为5的切片,初始值为0;make([]int,0,5)创建了一个容量为5长度为0,也就是没有数据的切片
  • 通过现成的数组来实现
  • 切片并不存储任何数据,它只是描述了底层数组中的一段,更改切片的元素会修改其底层数组中对应的元素。
  • []int表示一个类型为T的切片,切片文法类似于没有长度的数组文法,也就是可以通过v:= []int{1,2,3}创建一个[3]int{1,2,3}的数组,然后构建了一个引用了它的切片
  • [l,n]表示:下标为ln-1的数组
  • [:n]或者[l:]表示:下标从开始到n-1,下标从l到数组的最后一个元素\
  • 切片的长度就是它所包含的元素个数。切片的容量是从它的第一个元素开始数,到其底层数组元素末尾的个数。通过len()cap()来获取其长度和容量
  • nil 切片切片的零值是 nil 。nil 切片的长度和容量为 0 且没有底层数组。也就是声明没有赋值的切片var arr []int,切片 arr 为 nil切片
  • 通过append()方法来向切片中添加数据,在切片长度内的数据可以通过arr[k] = 1来操作;当操作元素索引大于切片长度而小于切片容量时,通过append()方法操作,操作完后切片长度+1,切片容量不变;当操作元素索引大于切片容量,通过append()方法操作后,切片长度+1,切片容量double。

for 循环的 range 格式可以对 slice 或者 map 进行迭代循环

  • 每次迭代都会返回两个值。 第一个值为当前元素的下标,第二个值为该下标所对应元素的一份副本。
    for i, v := range slice或者map {}
  • 可以通过赋值给 _ 来忽略序号和值,如果只需要索引值,去掉“, value”的部分即可
    for _, value := range pow {} //只获取值,赋值给value
  • for index := range pow {} //只获取索引,赋值给index

map字典(映射)

map 在使用之前必须用 make 来创建;值为 nil 的 map 是空的,并且不能对其赋值

声明:var m map[string]int,m = make(map[string]int)
声明初始化:
var m = map[string]int{"a":1, "b":2,"c":3,}
m := map[string]int{"a":1,"b":2}
通过双赋值检测某个键存在:
elem, ok = m[key]

函数

函数也是值。他们可以像其他值一样传递,比如,函数值可以作为函数的参数或者返回值
Go 函数可以是一个闭包。闭包是一个函数值,它引用了函数体之外的变量

方法

  • Go 没有类,可以为结构体类型定义方法
  • 方法接收者在它自己的参数列表内,位于 func 关键字和方法名之间**
  • 方法只是个带接收者参数的函数
  • 接收者的类型定义和方法声明必须在同一包内,不能为其他包内定义的类型包括内建类型声明方法
  • 指针接收者的方法可以修改接收者指向的值,也就是说,使用值接收者,只会对原始值的副本进行操作

相关文章

  • Go 语言学习技巧和编程思维

    Go 语言学习技巧和编程思维 一、了解 Go 语言 了解 Go 语言背景 学习 Go 语言,首先要了解 Go 语言...

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

  • 笨办法学golang(三)

    这是Go语言学习笔记第三篇。 Go语言学习笔记参考书籍「Go语言圣经」以及Go官方标准库 Go语言基本类型主要有布...

  • 第一篇:为什么要学习Go语言?

    学习书籍--许式伟、吕桂华等编著《Go语言编程》 目录 一、几种语言的理解 二、为什么要学习Go语言?(Go语言最...

  • 并发编程

    学习来源:Go语言实战、blibli 黑马程序员 20小时快速入门go语言(中) Go语言的优势 Go语言设计简单...

  • 笨办法学golang(二)

    这是Go语言学习笔记的第二篇文章。 Go语言学习笔记参考书籍「Go语言编程」、Go官方标准库 前文提要 上篇文章中...

  • 《深入学习Go语言》

    《深入学习Go语言》8月火热上市:当当,天猫,京东同步发售。 本书适合初次学习Go语言,以及对Go语言有初步了解的...

  • 笨办法学golang(四)

    这是Go语言学习笔记的第四篇 Go语言学习笔记参考书籍「Go语言圣经」以及Go官方标准库 数组 数组是指一系列同类...

  • Go语言入门到精通详解如何学习Go语言?

    如何学习Go语言?再回答这个问题之前,我们首先要想明白,自己为什么学习Go语言?在我看来,Go语言之所有越来越受到...

  • go 学习笔记

    最近开始学习go语言,记录下相关的东西 go语言学习资料汇总 go官网[https://golang.org/]g...

网友评论

      本文标题:GO语言学习

      本文链接:https://www.haomeiwen.com/subject/pqrvattx.html