Go 데이터 유형, 구조체, 슬라이스
11221 단어 gotutorialbeginnersprogramming
Go의 기본 유형
다음은 Go의 기본 유형 중 일부입니다. Go는 값이 0입니다. 즉, 선언되는 변수에 아무것도 초기화되지 않으면 기본값을 할당합니다. 다음은 몇 가지 유형의 목록입니다.
유형
가치
0 값
샘플 값
부울
첫 번째 반복 전
거짓
진실
끈
모든 반복 전에
""
"테스트"
정수
32비트 또는 64비트 정수
0
25
단위
32비트 또는 64비트 부호 없는 정수
0
5
float32
IEEE-754 32비트 부동 소수점 숫자
0
1.3242
컴플렉스64
float32 실수 및 허수 부분이 있는 복소수
(0+0i)
(2+3i)
나는 모든 다른 유형을 선언하고 사용하여 0 값을 확인하고 초기화도 시도했습니다.
package main
import "fmt"
func main() {
var bZeroValue bool
var b bool = true
var sZeroValue string
var s string = "test"
var iZeroValue int
var i int = -5
var uZeroValue uint
var u uint = 5
var fZeroValue float32
var f float32 = 3.14
var cZeroValue complex64
var c complex64 = (3 + 4i)
fmt.Printf("Type: %T Value: %v\n", bZeroValue, bZeroValue)
fmt.Printf("Type: %T Value: %v\n", b, b)
fmt.Printf("Type: %T Value: %v\n", sZeroValue, sZeroValue)
fmt.Printf("Type: %T Value: %v\n", s, s)
fmt.Printf("Type: %T Value: %v\n", iZeroValue, iZeroValue)
fmt.Printf("Type: %T Value: %v\n", i, i)
fmt.Printf("Type: %T Value: %v\n", uZeroValue, uZeroValue)
fmt.Printf("Type: %T Value: %v\n", u, u)
fmt.Printf("Type: %T Value: %v\n", fZeroValue, fZeroValue)
fmt.Printf("Type: %T Value: %v\n", f, f)
fmt.Printf("Type: %T Value: %v\n", cZeroValue, cZeroValue)
fmt.Printf("Type: %T Value: %v\n", c, c)
}
출력은 0 값과 각 값이 초기화되고 사용되는 방법을 보여줍니다.
Type: bool Value: false
Type: bool Value: true
Type: string Value:
Type: string Value: test
Type: int Value: 0
Type: int Value: -5
Type: uint Value: 0
Type: uint Value: 5
Type: float32 Value: 0
Type: float32 Value: 3.14
Type: complex64 Value: (0+0i)
Type: complex64 Value: (3+4i)
이동 포인터
Go에도 포인터가 있습니다. C 또는 C++와 동일한 메모리 주소를 보유합니다. 유형 T는 유형 T의 포인터입니다. 포인터의 0 값은 nil입니다. *& 연산자**를 사용하여 포인터를 생성합니다.
i := 5
var p *int = &i
를 사용하여 포인터에서 값에 액세스할 수 있습니다. 이를 **역참조*라고 합니다.
fmt.Println(*p)
Go 구조체
구조체는 C와 유사하며 유형이 지정된 필드 모음을 형성하는 데 사용됩니다. 일반적으로 OOPS 용어로 생각하는 경우 개체의 상태를 모델링하고 유지 관리하는 데 사용할 수 있습니다.
아래는 짧은 예입니다.
type Anime struct {
name string
year int
}
func main(){
onePiece := Anime("One Piece", 1999)
fmt.Println(onePiece.name, "was first aired on", onePiece.year)
}
도트 연산자를 사용하여 구조체 필드에 액세스합니다.
배열 이동
Go의 배열은 동일한 유형의 값 모음입니다. 값의 유형과 길이는 선언 후에 변경할 수 없습니다.
nos := [3]int {1, 2, 3}
fmt.Println(nos)
그러나 배열이 포인터인 C 및 C++와 달리 Go에서는 배열이 값입니다. 이 차이의 의미는 2배입니다.
고 슬라이스
Slice는 모양과 기능이 같지만 훨씬 더 유연합니다. 내장된 추가 기능을 사용하여 확장할 수 있습니다. 또 다른 주요 차이점은 슬라이스가 참조를 사용한다는 것입니다. 또한 모든 Go 함수는 배열이 아닌 슬라이스를 사용합니다.
슬라이스를 사용하고 추가로 확장하는 간단한 스니펫.
no := []int{1, 2, 3, 4}
no = append(no, 5)
fmt.Println(no)
이것이 Go의 기본 유형을 이해하는 데 도움이 되기를 바랍니다. 몇 가지 예와 함께 향후 기사에서 Slice 및 내부 작업에 대한 자세한 기사를 작성하기를 바랍니다. 다음 기사에서는 작은 프로젝트의 도움으로 Go 루틴을 다룰 것입니다.
행복한 코딩!
❤️를 남기고 댓글을 달아 여러분의 생각을 알려주세요.
지금까지 읽은 내용이 마음에 드십니까? 내 사이트https://vigneshm.me/posts/go_types/에서 기사를 확인하십시오.
Reference
이 문제에 관하여(Go 데이터 유형, 구조체, 슬라이스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vigneshm243/types-in-go-3de8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)