Go中的数据类型

来源:互联网 发布:单片机有哪些级别 编辑:程序博客网 时间:2024/05/16 04:04
bool
byte
rune
int/uint
int8/uint8


int16/uint16
int32/uint32
int64/int64
Pointer


chan  通道
func  函数
interface 接口
map  字典
struct 结构
nil 空值
type 用于自己定义数据类型




const 常量或者常量表达式


type MyString [3]string
MyString 是一个元素个数为3的数组类型




声明一个为Person的自定义结构体


type Person struct{




   Name string
   Age  uint8
   Address string
}
定义一个结构体


Person{Name:"ysd",Age:21,Address:"sichuan.china"}














Arrary 数组
  类型表示法,不是引用类型
     [n]T
[2*3*4]byte
     [3]string{"ysd","sichuan","guangyuan"}  // 长度为3.
 
一个数组即是一个值.所以在传递数组变量时,传递的是整个数组
如果是一个指针,则我们就需要取地址符号 
 
 
       
 
Slice 切片


len([string{10:"ysd"}])
 该值得表达式是11, len可以求数组的长度
 cap可以求出容量,
 创建方式
  slice1 := make([]string, 长度,容量)
  slice := array[起始:结束] ,将数组array的前四个元素,作为新的切片类型
  注意,包含起始,不包含结束,不能超过当前的长度
  
 向切片中追加新的值
  slice1 = append(slice1,"c++","php");
  append的实现和c++的vector容器一致
  copy可以拷贝一个切片
  
    n1 := copy(sliceA,sliceB)
  n1代表的是复制了的元素的数量
  

Map 字典
  类型表示,该类型是引用类型 
     map[K]T


  需要注意的是它的键类型不能是函数类型,字典类型,和切片类型
  
  map[string]bool类型的表示方法
    map[string]bool{"vim":true,"ysd":false}
  空类型的表示方法
    map[string]bool{}

 
     
 


复合类型的字面值由 {}括起来的符合元素的列表组成


接收操作符
  注意事项
    从一个通道类型的空值接受值的表达式将永远阻塞
    从一个已经关闭的通道类型值接收值会永远成功,并立即返回一个其元素的零值.


example

editor := map[string]bool{}
   
    删除:
    delete(editor,"gedit")


= 和:= 的区别
  =用于将一个值赋值给一个已经被声明的常量或者是变量
 := 用于在声明一个变量的同时并且对该变量进行赋值
     




go语言注意事项,在GO语言中没有值传递和引用传递,有的是值类型和引用类型




go语言中的类型表示法
 name string
 func search(name string,age int)(result int)
 
 result 在该函数被调用的时候会赋值给0值
 
 func Model(x,y int)(result int){
   result = x%y
   return 
 }
 
 
 
 
 
 
 

0 0
原创粉丝点击