【go语言入门教程】——2. 变量及类型

1. 变量

1.1 变量的声明方式
1.1.1 声明单个变量

1、只声明变量

语法格式:

var 变量名 变量类型

示例:

package main

import "fmt"

func main() {
	//声明变量
	var name string
	//赋值
	//name = "小明"
	fmt.Println("name:" + name)
}

2、声明变量并赋值进行初始化

语法格式:

var 变量名 变量类型 =

示例:

package main

import "fmt"

func main() {
	var name string = "小明"
	//var name = "小明"
	fmt.Println("name:" + name)
}

注意点:由于 Go 能够根据初始值自动推断变量类型,因此在有初始化的情况下,变量类型可以省略不写。

1.1.2 声明多个变量

1、声明同类型的多个变量

语法格式:

var 变量名1,变量名2 变量类型 =1,2

示例:

package main

import "fmt"

func main() {
	var staff1, staff2 string = "小明", "小李"
	//var staff1, staff2 string
	//staff1 = "小明"
	//staff2 = "小李"
	fmt.Println("staff1:", staff1, "staff2:", staff2)
}

2、声明不同类型的多个变量

语法格式:

var(
	变量1 =1
	变量2 =2
)

示例

package main

import "fmt"

func main() {
	var (
		name   = "小明"
		age    = 23
		height = 175
	)
	//亲测效果同上  var name1,age,height = "小明", 23,175
	fmt.Println("name:", name, "age:", age, "height:", height)
}
1.1.3 简短声明

使用 := 操作符进行声明,使用要求是所有使用此方式声明的变量都要有初始值。

语法格式:

变量名 :=

示例:

package main

import "fmt"

func main() {
	name, age, height := "小明", 23, 175
	fmt.Println("name:", name, "age:", age, "height:", height)
}

在这里插入图片描述

2. 基本类型

Go 语言支持的基本类型如下:

  • 布尔类型:bool
  • 数字类型:
    • int8, int16, int32, int64, int
    • uint8, uint16, uint32, uint64, uint
    • float32, float64
    • complex64, complex128
    • byte
    • rune
  • 字符串类型:string
2.1 布尔类型

bool 类型的值为 true 或 false

示例:

package main

import "fmt"

func main() {
	a := true
	b := false
	fmt.Println("a:", a, "b:", b)
	c := a && b
	fmt.Println("c:", c)
	d := a || b
	fmt.Println("d:", d)
}

运行结果:

a: true b: false
c: false
d: true
2.2 数字类型

数字类型:

  • int8, int16, int32, int64, int
  • uint8, uint16, uint32, uint64, uint
  • float32, float64
  • complex64, complex128
  • byte
  • rune

数字类型比较多,又可以将它们分为有符号整型、无符号整型、浮点型、复数类型、其它数字类型

2.2.1 有符号整型
名称含义大小范围
int8表示8位有符号整型8位-128~127
int16表示16位有符号整型16位-32768~32767
int32表示32位有符号整型32位-2147483648~2147483647
int64表示64位有符号整型64位-9223372036854775808~9223372036854775807
int根据不同的底层平台(Underlying Platform),表示32或64位整型。除非对整型的大小有特定的需求,否则你通常应该使用 int 表示整型在32位系统下是32位,而在64位系统下是64位在32位系统下是 -2147483648~2147483647,而在64位系统是 -9223372036854775808~9223372036854775807
2.2.2 无符号整型
名称含义大小范围
uint8表示8位无符号整型8位0~255
uint16表示16位无符号整型16位0~65535
uint32表示32位无符号整型32位0~4294967295
uint64表示64位无符号整型64位0~18446744073709551615
uint根据不同的底层平台,表示 32 或 64 位无符号整型在 32 位系统下是 32 位,而在 64 位系统下是 64 位在 32 位系统下是 0~4294967295,而在 64 位系统是 0~18446744073709551615
2.2.3 浮点型
名称含义
float3232 位浮点数
float6464 位浮点数

float64 是浮点数的默认类型,不做特别声明时,使用的是64位浮点数。

示例:

package main

import "fmt"

func main() {
	a, b := 3.95, 6.63
	fmt.Printf("type of a %T b %T\n", a, b)
	sum := a + b
	diff := a - b
	fmt.Println("sum", sum, "diff", diff)

	no1, no2 := 45, 33
	fmt.Println("sum", no1+no2, "diff", no1-no2)
}

运行结果:

type of a float64 b float64
sum 10.58 diff -2.6799999999999997
sum 78 diff 12
2.2.4 复数类型
名称含义
complex64实部和虚部都是 float32 类型的的复数
complex128实部和虚部都是 float64 类型的的复数

内建函数 complex

内建函数 complex 用于创建一个包含实部和虚部的复数,它的定义如下:

func complex(r, i FloatType) ComplexType

参数分别代表实部和虚部,函数返回一个复数类型。实部和虚部要相同类型,也就是 float32 或 float64。如果实部和虚部都是 float32 类型,那么函数会返回一个 complex64 类型的复数。如果实部和虚部都是 float64 类型,那么函数会返回一个 complex128 类型的复数。

使用内建函数创建复数的示例:

package main

import "fmt"

func main() {
	c1 := complex(5, 7)
	fmt.Println("得到的复数:", c1)
}

输出结果:

得到的复数: (5+7i)

使用简短语法创建复数

语法如下:

c := 5 + 7i

使用示例:

package main

import "fmt"

func main() {
	c1 := complex(5, 7)
	c2 := 4 + 9i
	sum := c1 + c2
	fmt.Println("两个复数的和是:", sum)
	data := c1 * c2
	fmt.Println("两个复数的乘积是:", data)
}

运行结果:

两个复数的和是: (9+16i)
两个复数的乘积是: (-43+73i)
2.2.5 其它数字类型
名称含义
byteuint8 的别名
runeint32 的别名
2.3 string类型

使用示例:

package main

import "fmt"

func main() {
	data := "学习"
	out := "go语言"
	result := data + out
	fmt.Println(result)
}

运行结果:

学习go语言
2.4 类型转换

示例:

package main

import "fmt"

func main() {
	i := 10
	//将int类型转换成浮点型
	var j float64 = float64(i)
	fmt.Println("j的值是:", j)
}

结果:

j的值是: 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值