go语言数据类型

本文介绍了Go语言的基础和派生数据类型,包括布尔、数字、字符串、指针、数组、结构体、Channel、函数、切片、接口、Map及变量声明的注意事项。还展示了如何使用指针交换变量值。通过对这些概念的了解,读者可以掌握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,加油!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酷尔。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值