Latest web development tutorials

Ir estrutura da linguagem

Ir matriz linguagem pode armazenar o mesmo tipo de dados, mas na estrutura, podemos definir itens diferentes para diferentes tipos de dados.

A estrutura é composta por uma série de conjuntos de dados do mesmo tipo ou de diferentes tipos de dados constituídos.

Estrutura representa um registro, como salvar uma biblioteca de registro de livros, cada livro tem as seguintes propriedades:

  • Título: Título
  • Autor: Autor
  • Assunto: Assunto
  • ID: Livros ID

Definição da estrutura

Estrutura é definido e requer o uso de instrução tipo struct. struct vai definir um novo tipo de dados, a estrutura tem um ou mais membros. declaração nome do tipo define a estrutura. estrutura de formato é o seguinte:

type struct_variable_type struct {
   member definition;
   member definition;
   ...
   member definition;
}

Depois de ter definido o tipo de estrutura, ele pode ser usado para declarar variáveis, sintaxe é a seguinte:

variable_name := structure_variable_type {value1, value2...valuen}

Para uma estrutura de

Se você quiser acessar um membro de estrutura, use o operador ponto, o formato (.) :. "Um nome de membro de estrutura."

Tipo de estrutura variável usando as definições de estruturas de palavras-chave, os exemplos são os seguintes:

package main

import "fmt"

type Books struct {
   title string
   author string
   subject string
   book_id int
}

func main() {
   var Book1 Books        /* 声明 Book1 为 Books 类型 */
   var Book2 Books        /* 声明 Book2 为 Books 类型 */

   /* book 1 描述 */
   Book1.title = "Go 语言"
   Book1.author = "www.w3big.com"
   Book1.subject = "Go 语言教程"
   Book1.book_id = 6495407

   /* book 2 描述 */
   Book2.title = "Python 教程"
   Book2.author = "www.w3big.com"
   Book2.subject = "Python 语言教程"
   Book2.book_id = 6495700

   /* 打印 Book1 信息 */
   fmt.Printf( "Book 1 title : %s\n", Book1.title)
   fmt.Printf( "Book 1 author : %s\n", Book1.author)
   fmt.Printf( "Book 1 subject : %s\n", Book1.subject)
   fmt.Printf( "Book 1 book_id : %d\n", Book1.book_id)

   /* 打印 Book2 信息 */
   fmt.Printf( "Book 2 title : %s\n", Book2.title)
   fmt.Printf( "Book 2 author : %s\n", Book2.author)
   fmt.Printf( "Book 2 subject : %s\n", Book2.subject)
   fmt.Printf( "Book 2 book_id : %d\n", Book2.book_id)
}

Exemplos da aplicação dos resultados operacionais acima da seguinte forma:

Book 1 title : Go 语言
Book 1 author : www.w3big.com
Book 1 subject : Go 语言教程
Book 1 book_id : 6495407
Book 2 title : Python 教程
Book 2 author : www.w3big.com
Book 2 subject : Python 语言教程
Book 2 book_id : 6495700

A estrutura como um parâmetro da função

Pode como outros tipos de dados para o tipo de estrutura transmitida para a função como um parâmetro. E a título de exemplo acima para aceder a variável estrutura:

package main

import "fmt"

type Books struct {
   title string
   author string
   subject string
   book_id int
}

func main() {
   var Book1 Books        /* 声明 Book1 为 Books 类型 */
   var Book2 Books        /* 声明 Book2 为 Books 类型 */

   /* book 1 描述 */
   Book1.title = "Go 语言"
   Book1.author = "www.w3big.com"
   Book1.subject = "Go 语言教程"
   Book1.book_id = 6495407

   /* book 2 描述 */
   Book2.title = "Python 教程"
   Book2.author = "www.w3big.com"
   Book2.subject = "Python 语言教程"
   Book2.book_id = 6495700

   /* 打印 Book1 信息 */
   printBook(Book1)

   /* 打印 Book2 信息 */
   printBook(Book2)
}

func printBook( book Books ) {
   fmt.Printf( "Book title : %s\n", book.title);
   fmt.Printf( "Book author : %s\n", book.author);
   fmt.Printf( "Book subject : %s\n", book.subject);
   fmt.Printf( "Book book_id : %d\n", book.book_id);
}

Exemplos da aplicação dos resultados operacionais acima da seguinte forma:

Book title : Go 语言
Book author : www.w3big.com
Book subject : Go 语言教程
Book book_id : 6495407
Book title : Python 教程
Book author : www.w3big.com
Book subject : Python 语言教程
Book book_id : 6495700

ponteiro estrutura

Pode-se definir um ponteiro que aponta para uma estrutura semelhante à outra variável ponteiro, o formato é o seguinte:

var struct_pointer *Books

Definido acima pode resolver ponteiro de memória variáveis ​​de estrutura variável. Consulte a estrutura de endereço da variável, você pode colocar um e comercial em frente das variáveis ​​de estrutura:

struct_pointer = &Book1;

Usando um ponteiro para um membro da estrutura de uma estrutura, o operador usar "".:

struct_pointer.title;

Vamos usar o ponteiro estrutura reescrever o exemplo acima, o código abaixo:

package main

import "fmt"

type Books struct {
   title string
   author string
   subject string
   book_id int
}

func main() {
   var Book1 Books        /* Declare Book1 of type Book */
   var Book2 Books        /* Declare Book2 of type Book */

   /* book 1 描述 */
   Book1.title = "Go 语言"
   Book1.author = "www.w3big.com"
   Book1.subject = "Go 语言教程"
   Book1.book_id = 6495407

   /* book 2 描述 */
   Book2.title = "Python 教程"
   Book2.author = "www.w3big.com"
   Book2.subject = "Python 语言教程"
   Book2.book_id = 6495700

   /* 打印 Book1 信息 */
   printBook(&Book1)

   /* 打印 Book2 信息 */
   printBook(&Book2)
}
func printBook( book *Books ) {
   fmt.Printf( "Book title : %s\n", book.title);
   fmt.Printf( "Book author : %s\n", book.author);
   fmt.Printf( "Book subject : %s\n", book.subject);
   fmt.Printf( "Book book_id : %d\n", book.book_id);
}

Exemplos da aplicação dos resultados operacionais acima da seguinte forma:

Book title : Go 语言
Book author : www.w3big.com
Book subject : Go 语言教程
Book book_id : 6495407
Book title : Python 教程
Book author : www.w3big.com
Book subject : Python 语言教程
Book book_id : 6495700