Go - 지도 및 구조체

10287 단어 beginnersclouddevopsgo

소개



Go 시리즈의 6부에 다시 ​​오신 것을 환영합니다. 마지막 항목에서 우리는 Go에서 기본이 아닌 두 가지 데이터 유형(1. 배열, 2. 슬라이스)을 보았습니다. 놓친 경우 확인하십시오: . 여기서는 3. Maps와 4. Structs에 대해 살펴보겠습니다.

3. 지도



배열과 슬라이스가 다른 기본 데이터 유형 항목의 모음인 방법을 살펴보았습니다. 맵도 항목 모음이지만 여기서 항목은 기본 유형일 뿐만 아니라 (key, value) 쌍입니다. 그리고 키는 기본 데이터 유형 항목이 될 수 있으며 값과 동일합니다. 그러나 유형은 맵의 모든 쌍(key, value)에 대해 일관되어야 합니다.

참고: 키는 각 쌍에 대해 고유해야 합니다. 즉, 두 쌍이 동일한 키를 가질 수 없습니다. 이 가정에 따라 키를 사용하여 쌍을 고유하게 식별할 수 있습니다.

지도 선언 및 초기화


make 함수를 사용하여 맵을 생성합니다. map[primitive]primitive는 데이터 유형입니다. 우리는 기본적으로 "이 유형의 지도를 만드십시오"라고 말하려고 합니다.

지도를 선언하고 초기화하는 프로그램




package main

import "fmt"

func main() {
        // Declaring a map
    var map1 map[int]string // A map in which key is of int type, value is of string type
        // Initialising an empty map
    var map2 = make(map[string]int) // An empty map in which key is of string type, value is of int type
        // Initialising a non-empty map
    map3 := map[float64]int{ // A map in which key is of float type, value is of int type
        0.5: 0,
        1.5: 1,
        2.5: 2,
    }
    fmt.Println(map1)
    fmt.Println(map2)
    fmt.Println(map3)
}


산출:


%T에서 Printf를 사용하여 지도의 유형을 직접 확인하면 지도를 만드는 데 왜 특정 표기법을 사용하는지 알게 될 것입니다.

지도에서 항목 추가 및 삭제


(key, value) 쌍을 지도에 추가하는 것은 간단합니다. 인덱스 연산자를 사용하여 새로운key을 인덱스에 부여하고 새로운value을 할당합니다. 자동으로 새 쌍을 만듭니다.

쌍을 삭제하기 위해 deletemap를 입력으로 사용하고 해당 특정 키로 쌍을 삭제하는 key 함수를 사용합니다.

지도에서 쌍을 추가하고 삭제하는 프로그램




package main

import "fmt"

func main() {
    // Initialising a map
    map1 := map[int]string{ 
        1: "string1",
        2: "string2",
    }
    fmt.Println("Map initially = ", map1)
    // Adding a new pair
    map1[3] = "string3" 
    fmt.Println("Map after adding (3, string3) = ", map1)
    // Deleting a pair with key 1
    delete(map1, 1)
    fmt.Println("Map after deleting pair with key 1 = ", map1)
}


산출:



4. 구조체



Struct는 기본이 아닌 다른 데이터 유형과 약간 다릅니다. 배열, 슬라이스 또는 맵과 같은 것의 모음이 아닙니다. 구조체는 다른 데이터 유형이 융합된 복합 데이터 유형입니다. 다른 데이터 유형의 조합인 사용자 정의 데이터 유형입니다.

구조체 유형 정의



앞서 말했듯이 사용자 정의 데이터 유형입니다. 따라서 type <name> struct { } 구문을 사용하여 이 유형을 정의해야 합니다. 이 안에는 <name> <datatype> 구문을 사용하여 이름과 함께 다른 데이터 유형을 제공합니다. 이것이 우리가 퓨전을 만드는 방법입니다.

구조체 유형을 선언 및 초기화하고 해당 유형의 변수를 생성하여 인쇄하는 프로그램




package main

import "fmt"

// Creating a struct1 type struct
type struct1 struct {
    nestedVar1 string
    nestedVar2 int
}

func main() {
    // Declaring a variable of type struct1
    var structVar1 struct1
    // Initialising a variable of type struct2
    structVar2 := struct1{"string1", 10}
    // Assigning value to structVar1
    structVar1 = struct1{"string2", 20}
    // Printing both
    fmt.Println(structVar1)
    fmt.Println(structVar2)
}


산출:



구조체의 중첩 변수에 액세스



위의 경우 struct1의 문자열 부분에 어떻게 액세스할 수 있습니까? .를 사용하여 그렇게 할 수 있습니다. structname.nestedVar는 특정 값을 제공합니다.

구조체 변수를 만들고 중첩 변수에 액세스하는 프로그램




package main

import "fmt"

// Creating a struct1 type struct
type struct1 struct {
    nestedVar1 string
    nestedVar2 int
}

func main() {
    //Initialising a struct1 type variable
    structVar1 := struct1{"string2", 20}
    // Printing nested variable
    fmt.Println(structVar1.nestedVar1)
}


산출:



결론



그게 다야. 다음 부분에서는 기본이 아닌 데이터 유형 각각의 사용 사례를 살펴보겠습니다. 또한 매우 중요한 이러한 각 데이터 유형을 통해 반복하는 것을 다루겠습니다.

Go lang에 대한 자세한 내용은 곧 제공될 예정이며 저를 팔로우하여 확인하세요. 이 기분이 좋았다면 좋아요를 누르고 공유하세요.

연결하자: Showwcase

좋은 웹페이지 즐겨찾기