首页 > 其他 > 详细

golang 学习笔记 --基本类型

时间:2019-10-08 11:46:37      阅读:61      评论:0      收藏:0      [点我收藏+]

字符串值表示了一个一个字符值的集合,在底层,一个字符串值即一个包含了若干字节的序列,长度为0的序列与一个空字符串对应。字符串的长度即底层字节列中字节的个数。

字符串值是不可变的,对字符串的操作只会返回一个新的字符串,而不会改变原字符串并返回。

只有基本类型及其别名类型才可以作为常量的类型

数组的长度是数组类型的一部分。类型声明中的数组长度不同,即使数组类型的元素类型相同,他们也是不同的类型。

数组:长度不可变

数组零值: 一个不包含任何元素的空数组。

var ipv4 = [...]uint8{192,168,0,1}

切片:长度可变,引用类型,零值的长度与容量都为0

var ips = []string{"192.168.0.1","192.168.0.2"}

ips.append("192.168.0.3")

ips = make([]string,100)  

fmt.Println(len(ips))  //100

fmt.Println(cap(ips))   //100

 

字典:其官方称谓是map,引用类型,零值是nil,零值的长度为0

var ipSwitches = map[string]bool{}

ipSwitches["192.168.0.1"]=true

delete(ipSwitches,"192.168.0.1")

 

函数与方法

在go中,函数是一等类型,可以将其当做一个值来传递和使用。

函数可以没有参数列表,也可以没有结果列表,但空参数列表必须保留括号,而空结果列表可以不用

eg: 

func printTab(){

...//省略

}

参数列表中参数必须有名称,结果列表中结果名称可有可无

如果函数声明的结果是有名称的,则return关键字后面就不用追加任何东西了

eg:

func divide(dividend int,divisor int)(result int,err error){
	if divisor == 0{
		err = errors.New("division by zero")
		return
	}
	result = dividend/divisor
	return 
}


接口:定义了一组行为,其中每个行为都由一个方法声明表示。(方法声明只有方法签名而没有方法体)
eg:
type Talk interface{
  Hello(userName string)string
  Talk(heard string)(saying string, end bool, err error)
}

只要一个数据类型的方法集合中包含了Talk接口声明的所有方法,那么它就是Talk接口的实现类型。

结构体:值类型,其零值不是nil


 

golang 学习笔记 --基本类型

原文:https://www.cnblogs.com/saryli/p/11634194.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!