作用于定义标识符可以使用的范围。在go中使用{}定义作用域的范围。在{}中可以嵌套语句块。但是,子语句快可以使用父语句块,父语句快不可以使用子语句块。如下所示就会报:undefined: inner.因为在{}外是不能调用{}内的inner := 2 outer := 1 {
fmt.Println("打印") 打印的同时还会进行换行,而fmt.Print("打印") 是不会换行的。另外fmt.Printf()可以打印变量的类型:a := "linuxea" fmt.Printf("%T,%s,%dn",a,"linuxea",1)[root@LinuxEA /opt
布尔类型用于表示真假,类型名为bool,只有两个值,分别是true和false。0值默认是falsepackage main import "fmt" func main(){ var hhlo bool helo := true hell := false
整型,go提供了5种有符号,5种无符号,1种指针,1种单字节,一种单个unicode字符(unicode码点),共13种整数类型,零值均为0.标识符:int,uint,rune,int8,int16,int32,int64,uint8,uint16,uint32,uint64,byte,uintpt
在go中浮点有两种类型,一种是float64,一种是float32。一般使用float64即可定义与赋值默认是0值package main import "fmt" func main(){ var floatt float64 fmt.Println(floatt) }运行[roo
字符串也可以作为算数运算,比如拼接。字符串也可以作为关系运算。赋值运算。可以通过索引获取。字符串定义内容必须是ascii,可以作为切片。而切片必须配置一个start和end。通常,我们可以使用len来获取字符串长度,并且可以使用len(string)-1来获取字符串最后一位定义字符串我们在定义字符串
通常而言,在go中,元素赋值一个变量A后,A变量如果在赋值给另外一个变量B,相当于一次复制。对于底层内存地址来讲,对于二次赋值的变量B修改元素,是不会修改到A变量的值,这是因为变量B的内存地址以及发生改变,如果需要修改到变量A,A就需要使用指针调用来赋值给B,大致意思是A和B使用同一个内存地址。认识
通常我们需要代码在满足一定条件时候进行执行,或者需要重复执行代码,此时条件语句(if-else if -else)或者选择语句(swicth case)及循环语句(for)12.流程控制!!! note老婆给老公打电话,下班顺路买十个包子,如果看到买西瓜的,买一个。当晚老公拿着一个包子回家。老婆问道
switch和if很相似。这里分为switch单值和表达式。我们仍然借用上一篇中if中的实例"老婆老公买西瓜包子"来做switch老婆的想法:package main import "fmt" func main(){ var yes string fmt.Print("是否看到卖西
此前的流程控制,都是我们预设了一个先有条件,现在for循环是重复做一件事情。一般而言,我们会设置一个索引,记录已经加到了多少,并记录结果。那么,至少定义两个变量。在for循环中,我们需要设置一个停止条件,否则就会一直for循环,就变成了死循环for循环先看下不用for循环的方式。result :=
for range在go中非常常用,可以遍历字符串,数组,切片,映射,管道。for range一般而言,for range遍历,有一个索引和一个值,这与需要变量的对象有关。 简单的认为一个是索引index,和一个value即可desc := "我是marksugar" for index,value
brack和continue 只能在for循环中使用,这在很多语言中都类似,但是在下一篇中我们会介绍goto的用法,这与其他的语言不同brack和continue我们先定义,i:=0,并且i<5,正常情况下,将会打印0~4package main import "fmt" func main(
与brack和continue不同,goto只有在C和go中才有。goto作为跳转,需要定义一个label标签。这个标签决定跳转到哪里。并且break也可以配合标签使用,见示例3goto示例1但输入内容为c/u/r/d,打印create,update,read,delete,如果输入都不是,就重新执
打印乘法口诀 for + if + fmt.Println + fmt.Printf猜数字游戏 for if continue/break a. 生成一个[0, 100)随机数 b. 让用户最多猜 5次(从命令行输入一个整数) 猜的太大 => 提示太大了,你还有N此猜测机会 猜的太小 =>
复合数据类型是集合类,并且可以存储多个单值。在golang中存储的数组是相同的数据类型,并且长度也是其中的一个属性。在go中,数组的长度一旦定义,就不可变。如果声明了长度的变量,只能赋值相同的长度的数组数组是具有相同数据类型的数据项组成一组长度固定的序列,数据项叫做数组的元素,数组的长度必须是非负整
多维数组中是不可以用自动推导的。2.1多维数组的定义数组中的多维数组。定义一个数组长度为3,并定义长度为2的int数组,如下:[3][2]int[3]为元素的数量,[2]int为类型,2是长度package main import "fmt" func main() { var mar
切片是长度可变的数组(具有相同数据类型的数据项组成的一组长度可变的序列),切片由三部分组成:指针: 指向切片第一个元素指向的数组元素的地址长度: 切片元素的数量容量: 切片开始到结束位置元素的数量切片的语法和数组很类似。切片是建立在数组之上的,当申请一个切片的时候,底层是通过指针指向一个数组。这个数
接着切片的声明和赋值,现在索引获取切片元素。定义长度是5,元素3,赋值给nums,如下获取元素 nums := make([]int,3,5)获取元素使用nums[0]开始进行获取,如下 fmt.Println(nums[0]) fmt.Println(nums[1])
遍历切片使用for range和len进行遍历两种简单方式4.8切片的遍历for lenfor循环遍历下nums,nums已经在上面定义了,加上之后如下:[root@www.linuxea.com /opt/Golang/work2]# cat make3.go package main impor
示例说明:首先,我们创建一个切片,而后将进行赋值到另外一个变量,并且修改,观察发生的变化定义一个长度为3,容量为5的int类型的nums切片nums := make([]int,3,5)在声明一个nums02,nums02是从nums的切片生成的,start 1,end 3nums02 := n