Go语言学习day03-基础语法之注释、变量

注释

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

变量

变量的命名规则遵循骆驼命名法,即首个单词小写,每个新单词首字母大写。例如:userFiles、systemInfo。

变量初始化标准格式

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

package main

import "fmt"

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

代码理解
在这里插入图片描述

🍇变量的定义

var name type
  • var 声明变量的关键字
  • name 变量名字
  • type 代表变量的类型

举例:

//定义一个字符串变量 name
var name string
//定义一个数字类型变量 age
var age int
💚定义多个变量
package main

import "fmt"
// 定义多个变量
func main() {
	//var定义变量,如果没有赋值,变量就默认是这个类型的默认值
	var (
		name string
		age  int
		addr string
	)
	//string:默认值 空
	//int 默认值 : 0
	fmt.Println(name, age, addr)
}

短变量声明并初始化

//:= 自动推导
	name := "lixiang"
	age := 3
	fmt.Print(name, age)
	fmt.Printf("%T,%T", name, age)

🍇理解变量(内存地址)

var num int
	num = 100
	fmt.Printf("num:%d,内存地址:%p", num, &num) //取地址符 &变量名
	num = 200
	fmt.Printf("num:%d,内存地址:%p", num, &num)

🍇变量的交换

package main

import "fmt"
func main() {
	// a = 100
	// b = 200
	// temp = 0
	// 1. temp = a  其他语言交换方法,常见方式是定义中间变量
	// 2. a = b
	// 3. b = temp(a)
	var a int = 100
	var b int = 200
	//在Go语言中,可以直接实现换值,不需要中间变量
	b, a = a, b
	fmt.Println(a, b)
}

🍇匿名变量

匿名变量的特点是一个下画线"_",本身就是一个特殊字符,被称为空白标识符。它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被抛弃

package main

import "fmt"

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

func main() {

	a, _ := test()
	_, b := test()
	//第一行代码只需要获取第一个返回值,所以第二个返回值定义为匿名变量_
	//第二行代码只需要获取第一个返回值,所以第二个返回值定义为匿名变量_
	fmt.Println(a, b)
}

匿名变量不占用内存空间,不会分配内存。匿名变量与匿名变量之间也不会因为多次声明而无法使用。

🍇变量的作用域

局部变量

在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,函数的参数和返回值变量都属于局部变量。

package main

import (
	"fmt"
)

func main() {
	//声明局部变量a和b并赋值
	var a int = 3
	var b int = 4
	//声明局部变量c并计算a和b的和
	c := a + b
	fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)

}

局部变量

在函数体外声明的变量称之为全局变量,全局变量只需要在一个源文件中定义,就可以在所有源文件中使用,当然,不包含这个全局变量的源文件需要使用“import”关键字引入全局变量所在的源文件之后才能使用这个全局变量。

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

package main

import "fmt"
//声明全局变量
var c int

func main() {
    //声明局部变量
	var a, b int
    //初始化参数
	a = 3
	b = 4
	c = a + b
	fmt.Printf("a = %d,b = %d, c = %d\n", a, b, c)
}

🍇常量

常量的应用

package main

import "fmt"

func main() {
	const URL string = "www.baidu.com" //带类型的是显示定义
	const URL2 = "www.baidu.com"       //不带类型的是隐式定义

	const a, b, c = 5.19, "lixiang", true //同时定义多个常量

	fmt.Println(URL)
	fmt.Println(URL2)
	fmt.Println(a, b, c)

}

🍇iota

iota,特殊常量,依次计数,常量计数器。iota在const关键字出现时将被重置为0

package main

import "fmt"

func main() {
	const (
		//iota依次计数 常量计数器
		a = iota //0
		b
		c
		d = "haha"
		e
		f = 100
		g
		h = iota
		i
	)
	const (
		j = iota
		k
	)
	fmt.Println(a, b, c, d, e, f, g, h, j, k)
}

运行结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值