golang学习笔记系列之变量和常量

变量

变量是计算机语言中能存储计算结果或能表示值的抽象概念,不同的的变量保存的数据类型可能不一样。

声明变量

go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。并且go语言的变量声明后必须使用,否者会报错。

默认语法
var indertifer type

//例:
var age int    //int类型的变量不赋值,默认值是0
var price float64 //默认值是0
var flag bool  //默认值是false 
类型推断

不需要为变量指定类型,根据变量的值来自动推断变量的类型。

var name = “TOm”
var num = 10
同时声明多个变量
var name,age,gender = "Tom",18,true
短变量声明

短变量只能在函数内部进行声明,使用**:=**运算符对变量进行声明和初始化。

identifer := ""

//例:注意,一定是在函数内部声明,否则会报错!

func fun(){
    age:=18
	name:=tom
}

匿名变量

如果我们接收到多个变量,有一些变量使用不到,可以使用下划线,便是变量名,这种变量叫做匿名变量。

func Fun() (string, int) {
	return "Tom", 18
}
//匿名变量 匿名变量不使用也不会报错
tom_name, _ := Fun()
fmt.Printf("tom_name: %v\n", tom_name)

常量

常量,就是在程序编译阶段就确定下来的值,二程序在运行时则无法改变该值。在go语言中,常量可以是数值类型,布尔类型,字符串类型等等。

常量声明

定义一个常量使用const关键字,语法格式如下:

const constantName [type] = value
  • const:定义常量的关键字
  • constantName:常量名
  • type:常量的类型,可选
  • value:常量的值
package main

import "fmt"

func main() {

	//常规语法
	const PI float32 = 3.14
	const H = 100

	//定义多个
	const (
		NAME = "Tom"
		AGE  = 18
	)

	//注意:声明多个变量时,如果省略了赋值,则表示和上面的一行值相同
	const (
		a = 1
		b //b=a=1
		c = 100
		d //d=c=100
	)

	fmt.Printf("a: %v\n", a)
	fmt.Printf("b: %v\n", b)
	fmt.Printf("c: %v\n", c)
	fmt.Printf("d: %v\n", d)

	//同时定义
	const X, Y, Z = 2, 3, 4
	fmt.Printf("X: %v\n", X)
	fmt.Printf("Y: %v\n", Y)

}

iota

iota比较特殊,可以被认为是一个可被编译器修改的常量,它的默认值是0,每调用一次值就加一,遇到const关键字时被重置为0。

//iota
	const (
		A = iota //0 
		B = iota //1
		C = iota //2

	)
	fmt.Printf("A: %v\n", A)
	fmt.Printf("B: %v\n", B)
	fmt.Printf("C: %v\n", C)

	//iota中间截断
	const (
		aa = iota //0
		_         //1
		cc = iota //2
	)

	fmt.Printf("aa: %v\n", aa)
	fmt.Printf("cc: %v\n", cc)


	const(
		aaa=iota  //0
		bbb=1000  //1000 [1]
		ccc=iota  //2
	)

	fmt.Printf("aaa: %v\n", aaa)
	fmt.Printf("ccc: %v\n", ccc)

同步更新于个人博客系统:golang学习笔记系列之变量和常量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 golang 学习笔记,希望对你有帮助: ### 1. 基本语法 - 包声明:每个 Go 程序都是由多个包组成,使用 `package` 声明包名。 - 引入包:使用 `import` 关键字引入需要的包。 - 函数:使用 `func` 关键字声明函数,函数可以有多个返回值。 - 变量:使用 `var` 关键字声明变量。 - 常量:使用 `const` 关键字声明常量。 - 控制语句:Go 语言支持条件语句和循环语句,例如 `if`、`switch`、`for` 等。 ### 2. 数据类型 Go 语言支持以下数据类型: - 布尔型:`bool` - 数字类型:`int`、`int8`、`int16`、`int32`、`int64`、`uint`、`uint8`、`uint16`、`uint32`、`uint64`、`uintptr`、`float32`、`float64`、`complex64`、`complex128` - 字符串类型:`string` - 派生类型:`array`、`slice`、`map`、`struct`、`interface`、`channel` ### 3. 函数 Go 语言中的函数可以有多个返回值,可以使用命名返回值来使函数更加清晰易读。例如: ```go func swap(x, y string) (string, string) { return y, x } ``` ### 4. 数组和切片 Go 语言中的数组和切片都是支持多维的。数组和切片的区别在于数组长度是固定的,而切片长度可以动态变化。例如: ```go // 声明数组 var a [5]int // 声明切片 var s []int s = append(s, 1, 2, 3) ``` ### 5. 结构体 结构体是一种自定义的数据类型,可以包含多个不同类型的字段。例如: ```go type person struct { name string age int } func main() { p := person{"Bob", 20} fmt.Println(p.name, p.age) } ``` ### 6. 接口 接口定义了一组方法的集合,只要某个类型实现了接口中定义的所有方法,就可以认为它实现了这个接口。例如: ```go type Shape interface { area() float64 } type Circle struct { x, y, r float64 } func (c Circle) area() float64 { return math.Pi * c.r * c.r } func main() { var s Shape s = Circle{x: 0, y: 0, r: 5} fmt.Println(s.area()) } ``` ### 7. 并发 Go 语言使用协程来实现并发,协程是一种轻量级的线程,可以在一个线程中同时执行多个协程。例如: ```go func main() { go say("world") say("hello") } func say(s string) { for i := 0; i < 5; i++ { time.Sleep(100 * time.Millisecond) fmt.Println(s) } } ``` 以上就是 golang 学习笔记的主要内容,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值