Go - 지도 및 구조체
소개
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
을 할당합니다. 자동으로 새 쌍을 만듭니다.쌍을 삭제하기 위해
delete
및 map
를 입력으로 사용하고 해당 특정 키로 쌍을 삭제하는 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
Reference
이 문제에 관하여(Go - 지도 및 구조체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vchiranjeeviak/go-maps-structs-485c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)