tipos de dados complexos:
- ponteiro ponteiro
- array
- estrutura estrutura, alternativa classe
- canal oleoduto
- Função (também um tipo de função)
- fatia fatia
- Interface Interface
- mapear (hashmap semelhante, conjunto), relativamente simples e não complicado, o equivalente a outra língua mapa, só isso.
Ponteiro:
todas as referências relacionadas relaciona ponteiro;
tipos de dados base, o valor variável é armazenado, também chamado de tipo de valor;
Análise tipos básicos de layout de dados na memória.
-
O que é uma variável ponteiro:
package main import "fmt" func main() { var num int = 200 fmt.Println(&num) //num变量的内存地址0xXXXXXXXX var ptr *int = &num //指针变量是num变量的内存地址0xXXXXXXXX,即ptr=&num,ptr数据类型为指针 fmt.Println(ptr) //内存地址0xXXXXXXXX fmt.Println(*ptr) //内存地址0xXXXXXXXX对应的值,也就是num变量对应的变量值 fmt.Println(**&ptr) //*&ptr相同于ptr,**&prt==*prt,也就是取本内存地址0xXXXXXXXX的变量值 }
-
Alterar o valor armazenado na memória pela variável de ponteiro:
package main import "fmt" func main() { var a int = 100 //变量值为100 var ptr *int = &a //定义一个指针变量,指向a的内存地址 *ptr = 200 //将内存地址对应的变量值修改为200 fmt.Println(a) //再打印a,对应变量值变为200 }
-
Modificar o valor do ponteiro string:
package main import "fmt" func main() { var b string = "shit!" var ptr1 *string = &b *ptr1 = "hit!" fmt.Println(b) }
-
Tipos de valor e tipos de referência:
- Tipo de valor: tipos de dados básicos, string, array, struct
- Tipos de referência: ponteiro, fatia, mapa, canal, de interface
- Para a área de pilha e a lógica memória heap: o
tipo de valor é geralmente na alocação área de pilha, atribuição direta variável;
tipo de referência é geralmente alocados na área de montão, é armazenado em um endereço da variável, o endereço correspondente ao armazenamento de dados espaço real ( um valor variável) quando não há referências de variáveis que endereço, GC se torna resíduos são reciclados
, uma vez que a pilha é um conceito lógico, não distinguem de modo detalhado, alguns compiladores mesmo as pilhas são mesclados, variável golang de acordo com a duração do ciclo de vida julgamento na zona de extremidade na pilha ou amontoado região.