首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go的基础知识1

Go的基础知识1

作者头像
苦咖啡
发布2018-04-28 11:26:53
6480
发布2018-04-28 11:26:53
举报
文章被收录于专栏:我的博客我的博客

1.关键字 break    default      func    interface    select case     defer        go      map          struct chan     else         goto    package      switch const    fallthrough  if      range        type continue for          import  return       var

2.入口函数 每一个可独立运行的Go程序,必定包含一个package main,在这个main包中必定包含一个入口函数main,而这个函数既没有参数,也没有返回值。

3.定义变量 var name type //定义一个type类型的name变量 var name1,name2,name3 type //定义3个type类型的变量 var name type = value //定义type类型变量并初始化为value var name1,name2,name3 type = v1,v2,v3 //定义三个type类型变量并分别初始化 var name1,name2,name3 = v1,v2,v3 //定义三个type类型变量并分别初始化 name1,name2,name3 := v1,v2,v3 //定义三个type类型变量并分别初始化,只能在函数内部用 _ 是特殊变量,任何值都会被舍弃

备注:变量如果声明未使用则会编译报错

4.常量 const name = value 定义一个常量,常量的值是数值、bool、 const name type = value 指定类型

5.数值类型 整数类型有无符号和带符号两种。Go同时支持int和uint,这两种类型的长度相同,但具体长度取决于不同编译器的实现。Go里面也有直接定义好位数的类型:rune, int8, int16, int32, int64和byte, uint8, uint16, uint32, uint64。其中rune是int32的别称,byte是uint8的别称。浮点数的类型有float32和float64两种(没有float类型),默认是float64。 Go还支持复数。它的默认类型是complex128(64位实数+64位虚数)。如果需要小一些的,也有complex64(32位实数+32位虚数)

6.字符串 字符串使用UTF-8字符集使用双引号或者反引号,类型是string 字符串可以使用+来连接 用反引号可以声明多行字符串

7.错误类型 内置一个error类型用来处理错误信息,还有一个errors的包可以处理错误

8.分组声明 import( “fmt” “os” ) const( i = 100 pi = 3.1415 prefix = “Go_” )

9.iota枚举 const(  x = iota y = iota z ) 那么y=1,z=2 备注:它默认开始值是0,const中每增加一行加1

const ( h, i, j = iota, iota, iota //h=0,i=0,j=0 iota在同一行值相同 )

10.设计原则 大写字母的变量是可以到处的 大写字母开头的函数等同public函数

11.数组array var arr [n]type 声明一个type类型长度是n的arr数组 b := [10]int{1, 2, 3} //数组前三个元素用1 2 3初始化 c := […]int{4, 5, 6} //go自动计算数组长度 easyArray := [2][4]int{{1, 2, 3, 4}, {5, 6, 7, 8}} //声明二维数组

12.动态数组slice var fslice []int  //声明数组,但不带长度 // 声明一个含有10个元素元素类型为byte的数组 var ar = [10]byte {‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’}

// 声明两个含有byte的slice var a, b []byte

// a指向数组的第3个元素开始,并到第五个元素结束, a = ar[2:5] //现在a含有的元素: ar[2]、ar[3]和ar[4]

// b是数组ar的另一个slice b = ar[3:5] // b的元素是:ar[3]和ar[4]

slice是引用类型,所以当引用改变其中元素的值时,其它的所有引用都会改变该值

13.map类型 map是无序的,每次打印出来的map都会不一样,它不能通过index获取,而必须通过key获取 map的长度是不固定的,也就是和slice一样,也是一种引用类型 内置的len函数同样适用于map,返回map拥有的key的数量 map的值可以很方便的修改,通过numbers[“one”]=11可以很容易的把key为one的字典值改为11 map和其他基本型别不同,它不是thread-safe,在多个go-routine存取时,必须使用mutex lock机制

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年8月2日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档