golang数据类型变量定义
Posted Leo Han
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang数据类型变量定义相关的知识,希望对你有一定的参考价值。
golang中主要基础数据类型如下:
类型 | 描述 |
---|---|
uint8 | 无符号 1个字节8位整型 (0 到 255) |
uint16 | 无符号 2字节16位整型 (0 到 65535) |
uint32 | 无符号 4字节32位整型 (0 到 4294967295) |
uint64 | 无符号 8字节64位整型 (0 到 18446744073709551615) |
int8 | 有符号 1字节8位整型 (-128 到 127) |
int16 | 有符号 2字节16位整型 (-32768 到 32767) |
int32 | 有符号 4字节32位整型 (-2147483648 到 2147483647) |
int64 | 有符号 8字节64位整型 (-9223372036854775808 到 9223372036854775807) |
uint | 32位操作系统上就是uint32,64位操作系统上就是uint64 |
int | 32位操作系统上就是int32,64位操作系统上就是int64 |
float32 | 32 位浮点型 |
float64 | 64 位浮点型 |
complex64 | 32 位实数和虚数 |
complex128 | 64 位实数和虚数 |
uintptr | 无符号整型,用于存放一个指针 |
bool | 1字节8位,只允许 true和false不能转int,默认值为false |
string | 默认值为 “” |
变量定义
golang中可以通过如下几种方式对变量进行定义:
- var name type 方式,这种情况下,变量的值为其零值,比如:
var a int;
var b int = 3
如果指定了其初始值,那么不用指定类型,形如: var name = value 格式,如:
var a = 100
- name : = value 格式,
这种只能在函数内部用
,使用:=
,golang会自动推导其类型
a := 100
- 一次定义多个变量,按照从左到右的方式赋值:
var a, b, c int
var a, b, c int = 1,2,3
var a, b, c = 1,2,3
a,b,c := 1,2,3 // 必须在方法内部使用
- 使用var () 一次定义多个:
var (
a int
b string
c []float32
...
)
数组
golang中数组声明如下:
var name [size]type
如:
var arr [2]int
声明了一个长度为2类型为int的数组,数组中的每个元素初始值都为0
或者:
arr := [...]int1,2,3,4
brr := [3]int1,2,3
切片
golang中切片声明如下:
var name []type
如:
var sli []int
还可以通过如下方式:
var slicea []int = arr[0:1] // arr[:]复制所有
sliceb := make([]int,5,5)
结构体
golang中结构体定义如下:
type name struct
filedName1 type
filedName2 type
....
可以通过如下方式进行初始化:
type Person struct
Name string
Age int
var person Person;
person.Name = "leo"
person.Age = 31
或者:
var person = PersonName:"leo",Age:31
// 或者
person := PersonName:"leo",Age:31
或者使用new函数,但是返回的是一个指针
person := new(Person)
接口
golang中接口一般定义如下:
type interName interface
Method1(arg1 type1,arg2 typ2)(type3,typ4)
Method2(arg1 type1,arg2 typ2)(type3,typ4)
值传递、指针传递
golang中默认都是值传递的,即拷贝传递,有一些值是指针,也是拷贝指针的值传递,只是通过指针可以修改原有数据
以上是关于golang数据类型变量定义的主要内容,如果未能解决你的问题,请参考以下文章