注释

给别人看的,机器并不会执行这行语句

1.单行注释

// 我是单行注释

2.多行注释

/*我是多行注释我是多行注释我是多行注释我是多行注释*/// 这是一个main函数,这个是go语言启动的入口func main() {   //fmt.Println :打印一句话,然后执行完毕后,进行换行   fmt.Println("Hello,Word")}

变量

字面理解为变量就是会变化的量

package mainimport "fmt"func main() {   var name string = "DuPeng"   fmt.Println(name)}

注意:如果在点击这里执行会出错

出错提示:项目里有多个main方法

正确执行方式:鼠标单击右键执行,一定要在main方法外! 一定要在main方法外 !一定要在main方法外,重要事情说三遍

变量的定义

var name type

name

name 为变量,它指向的是地址,而这个地址指向内存空间,而内存空间的数据是可以更换的

var

声明变量的关键字,固定的写法,记住即可

type

代表变量的类型

定义多个变量

package mainimport "fmt"// “=” 赋值符号 将等号右边的值赋值给等号左边func main() {   var (      //姓名      name string      //年龄      age int      //地址      addr string   )    //string 默认值:空//int 默认值:0   fmt.Println(name, age, addr)}

变量的初始化

标准格式

var 变量名 类型 =值(表达式)

也可以先定义,再赋值

package mainimport "fmt"func main() {   // “=” 赋值符号   var (      //姓名      name string      //年龄      age int      //地址      addr string   )   name = "dupeng"   age = 22   addr = "成都"   //string 默认值:空   //int 默认值:0   fmt.Println(name, age, addr)}

短变量声明并初始化

import "fmt"func main() {   //    :=自动推导   name := "dupeng"   age := 18   fmt.Println(name, age)   //打印输出name和age的类型   fmt.Printf("%T,%T", name, age)}

打印输出声明类型

内存地址

打印内存地址

import "fmt"func main() {   var num int   num = 100   fmt.Printf("num:%d,内存地址:%p", num, &num)}

不要忘记取地址符

值发生变换而内存地址不会发生改变,但每次重启系统就会重新分配一个新的地址空间

变量交换

package mainimport "fmt"func main() {   /*      在其他语言中 变量的交换为下列代码      a=100      b=200      temp=0      temp=a      a=b      b=temp   */   // 而在go语言中   var a int = 100   var b int = 200   b, a = a, b   fmt.Println(a, b)}

匿名变量

特点是"_","_"本身就是一个特殊字符

被称为空白标识符,任何赋值给这个标识符的值都会被抛弃,这样可以加强代码的灵活性

package mainimport "fmt"func test() (int, int) {   return 100, 200}func main() {   a, b := test()   fmt.Println(a, b)}

当我们不想接收第二个值时可以废弃掉

package mainimport "fmt"func test() (int, int) {   return 100, 200}func main() {   a,_ := test()   fmt.Println(a)}

变量的作用域

一个变量(常量、类型或函数)在程序中都有一定的作用范围,称之为作用域。

局部变量

在函数体声明的变量,只作用在函数体内

全局变量

在函数体外声明的变量为全局变量

全局变量必须以var关键字开头,如果要在外部包使用全局变量的首字母必须大写