golang数据类型变量定义

Posted Leo Han

篇首语:本文由小常识网(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)
uint32位操作系统上就是uint32,64位操作系统上就是uint64
int32位操作系统上就是int32,64位操作系统上就是int64
float3232 位浮点型
float6464 位浮点型
complex6432 位实数和虚数
complex12864 位实数和虚数
uintptr无符号整型,用于存放一个指针
bool1字节8位,只允许 true和false不能转int,默认值为false
string默认值为 “”

变量定义

golang中可以通过如下几种方式对变量进行定义:

  1. var name type 方式,这种情况下,变量的值为其零值,比如:
var a int;
var b int = 3

如果指定了其初始值,那么不用指定类型,形如: var name = value 格式,如:

var a = 100
这种只能在函数内部用:= 
a := 100
  1. 一次定义多个变量,按照从左到右的方式赋值:
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 // 必须在方法内部使用
  1. 使用var () 一次定义多个:
var (
    a int 
    b string
    c []float32
    ...
)

数组

 var name [size]type
var arr [2]int

声明了一个长度为2类型为int的数组,数组中的每个元素初始值都为0
或者:

arr := [...]int1,2,3,4
brr := [3]int1,2,3

切片

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数据类型变量定义的主要内容,如果未能解决你的问题,请参考以下文章