Go语言笔记—Go基础语法(1)

目录

注释

1.单行注释

2.多行注释

变量

变量的初始化

内存地址

匿名变量

变量的作用域

常量

const

iota


 

注释

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

1.单行注释

// 我是单行注释

2.多行注释

/*
我是多行注释
我是多行注释
我是多行注释
我是多行注释
*/

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

变量

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

package main

import "fmt"

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

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

268080d3998f4172b1245bde04fda5ee.png

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

38386d5e59df475cb6cf43f15fb1bc0f.png

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

41e3fd38d9f7409b82b77397607cc939.png

 变量的定义

var name type

name

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

e2db6ce225e94eeb9fc661e23bb017ca.png

 var

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

type

代表变量的类型

定义多个变量

package main

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

变量的初始化

标准格式

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

也可以先定义,再赋值

package main

import "fmt"

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

a6547cf474c641c6a00de89326b274fe.png

短变量声明并初始化

import "fmt"

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

打印输出声明类型

 37db3c9bde6642bba705560e9f0fb4f4.png

 

内存地址

打印内存地址

import "fmt"

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

不要忘记取地址符

dadc19363b054906a2055ce2e1ebb603.png

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

8cb2c38c9e634bc297965e215ef00207.png

 变量交换

package main

import "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)
}

fd68b0c85c0446f09b5c61a41603c4ea.png

 

匿名变量

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

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

package main

import "fmt"

func test() (int, int) {
   return 100, 200
}

func main() {
   a, b := test()
   fmt.Println(a, b)
}

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

package main

import "fmt"

func test() (int, int) {
   return 100, 200
}

func main() {
   a,_ := test()
   fmt.Println(a)
}

08528040b2634e2399160ca1160606d6.png

 

变量的作用域

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

局部变量

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

全局变量

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

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

79c199a658434316a0db9caf25554c36.png

 

常量

是一个简单值得标识符,在程序运行时,不会被修改的量

数据类型:布尔型,数字型,(整数型、浮点型和复数型)和字符串型

const

当定义完常量后,常量不允许被修改,否则会出错

22978ed75b954ab4afffba71add019f3.png

 示例:

318d6f9316eb41c996b5826dbe2fdd17.png

 

iota

特殊常量,可以认为是一个被编译器修改的常量

iota是go语言的常量计数器 从0开始 依次递增

19d0feeda552435a93e0fbbfbefc10b6.png

 13364a3115c8464b96124d88f511a130.png

 直至const出现之时将被重置

package main

import "fmt"

func main() {
   const (
      a = iota //0
      b        //1
      c        //2
      d = "dd" // dd   iota=3
      e        //4
      f = 100  //100 iota=5
      g        //6
      h = iota //haha    iota=7
      i        //8
   )
   const (
      j = iota
      k
   )
   fmt.Println(a, b, c, d, e, f, g, h, i, j, k)
}
//输出结果:0 1 2 dd dd 100 100 7 8 0 1

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_57781768

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值