go语言数据类型

举报
酷尔。 发表于 2022/04/01 10:01:14 2022/04/01
【摘要】 详细的介绍了go语言中包含哪些数据类型,以及每一种数据类型使用方法的举例。

数据类型有哪些?怎么使用?(在这里仅仅做简单介绍,后来会进行详细介绍)


(一)基础类型

  • 布尔
    有两种值bool或者true
  • 数字类型
    整型、浮点型
  • 字符串类型
    字符串是一串固定长度的字符拼接起来的字符序列,go语言字符串是由单个字节连接起来的
    go语言字符串的字节使用utf-8编码

(二)派生类型

(1)指针类型
var p int=10
var p1 *int
var p2 **int
p1=&p
p2=&p1
//以下打印均为10
fmt.Println(p,*p1,**p2)
(2)数组类型
	//声明数组的两种方式
	//先声明后初始化
	var my2arr [3][4]int
	//直接初始化
	var myarray1 = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
(3)结构体类型
type man struct {
	id   string
	name string
	age  int
}
(4)Channel类型(类似于队列,先进先出)
//这里声明了一个int型的通道
	var a chan int
(5)函数类型(简单声明一个函数的方法)
//返回两个值中一个较大的值,相等则抛出异常
 func maxs(a, b int) (error,int) {
	if a > b {
		return nil,a
	} else {
		return nil,b
	}
	return errors.New("相等"),0
}
(6)切片类型(可以随意进行切割,算头不算尾)
	atemp := [11]int{1, 2, 3, 4, 5, 6, 9, 8, 7, 0}
 	a2 := atemp[:6]
(7)接口类型(十颗星)
//接口的定义
type Phone interface {
	speak()
	read()
}
//类型的实现
type IPhone struct {
}
//接口功能的实现
func (a IPhone) speak() {
	fmt.Println("我叫sir,您好!")
}
(8)Map类型
 Map就是集合,有键有值
 	// 直接进行初始化
	var name = map[string]string{"func": "123", "name": "66"}
	fmt.Println(name)
	// 使用make进行初始化
	var name1 map[string]string
	name1 = make(map[string]string)

(三)变量的声明注意点

(1)变量声明的一般形式是使用var关键字,支持一次声明多个变量
(2)如果变量只进行了声明,没有对他进行赋值,那么int变量的默认值为0
			bool类型变量默认为false
			str类型变量是“”(空字符串)
			指针、数组、函数默认值为nil
(3)根据所给的值进行自我判断(值是什么类型,变量就是什么类型)
(4)声明赋值简写 a:=1(这种方式a的类型将与值的类型相同,并且这种声明方式不可以用于全局变量的声明)
			相当于var a int
				a=1
			如果使用var a int 后再使用a:=1就会报错
(5)因式分解式的变量声明(一般用于全局变量声明)
			var(
				变量1 类型1
				变量2 类型2
			)
(6)go语言中进行局部变量声明必须使用,不使用的话会进行报错,全局变量没事
(7)空白字符_(超级重要)
			空白字符是一个只写变量,只能对其进行写入没办法将里面的数据进行读出
			可以用于接收多返回值函数的某些特定位置的返回值
			例如:
			_=10
			一般用来忽略多余返回值,或用于通道
(8)交换两个数据可以这样写
a:=10
b:=100
	// 交换a,b两个值
	a, b = b, a

如果看完本博客对go语言变量有了一定的认识,则达到了效果,后续还会进行每一种变量的详细介绍。

在这里插入图片描述


Go GO GO,加油!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。