Что (точно) делает ключевое слово типа в go? - PullRequest
0 голосов
/ 09 декабря 2018

Я читал Тур по Го , чтобы выучить Го-Ланг и пока все идет хорошо.

Я сейчас на Структурные поля Урок, а вот пример кода с правой стороны:

package main

import "fmt"

type Vertex struct {
  X int
  Y int
}

func main() {
  v := Vertex{1, 2}
  v.X = 4
  fmt.Println(v.X)
}

Взгляните на строку 3:

type Vertex struct {

Что я не понимаючто делает ключевое слово type и почему оно там?

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Используется для определения нового типа.

Общий формат:
type <new_type> <existing_type or type_definition>

Типичные случаи использования:

  • Создайте новый тип для существующего типа.
    Формат:
    type <new_type> <existing_type>
    Например,
    type Seq []int
  • Создайте тип при определении структуры.
    Формат:
    type <new_type> struct { /*...*/}
    например,
    https://gobyexample.com/structs
  • Определить тип функции, (иначе, путем присвоения имени сигнатуре функции) .
    Формат:
    type <FuncName> func(<param_type_list>) <return_type>
    например,
    type AdderFunc func(int, int) int

В вашем случае:

Он определяет тип с именем Vertex для новогоstruct, так что позже вы можете обратиться к структуре через Vertex.

0 голосов
/ 09 декабря 2018

Ключевое слово type используется для создания нового типа.Это называется определение типа .Новый тип (в вашем случае, Vertex) будет иметь ту же структуру, что и базовый тип (структура с X и Y).Эта строка в основном говорит «создайте тип с именем Vertex на основе структуры X int и Y int».

Не путайте определение типа с псевдонимом типа.Когда вы объявляете новый тип, вы не просто даете ему новое имя - он будет считаться отдельным типом.Посмотрите на тип личности для получения дополнительной информации по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...