GO 언어 make () 할당 용법 인 스 턴 스
make () 분배: 내부 함수 make (T, args) 의 서비스 목적 은 new (T) 와 다르다.절편, 맵, 프로 세 스 만 생 성하 고 초기 화 된 (0 이 아 닌) type T 의 값 을 되 돌려 줍 니 다. * T 의 값 이 아 닙 니 다.
이러한 구분 의 원인 은 이 세 가지 유형의 데이터 구 조 는 반드시 사용 하기 전에 초기 화 되 어야 하기 때문이다. 예 를 들 어 절편 은 세 가지 설명자 로 데이터 포인터 (배열 내), 길이, 용량 을 포함한다.이 항목 들 이 초기 화 되 기 전에, 절단 은 nil 입 니 다.
절편, 맵, 채널 에 대해 make 는 내부 데이터 구 조 를 초기 화하 고 사용 할 값 을 준비 합 니 다.make () 는 맵, 절편, 거리 에 만 사용 되 고 지침 을 되 돌려 주지 않 는 다 는 것 을 기억 하 십시오.명확 하 게 지침 을 받 으 려 면 new () 로 분배 해 야 합 니 다.
package main
import "fmt"
func main() {
// ;* p==
var p *[]int = new([]int)
*p = make([]int, 100, 100) // ,
fmt.Println(p)
// V ,100
//
//var v []int = make([]int, 100)
// : ,
v := make([]int, 100)
fmt.Println(v)
}
make() 。
// make , 。
// 5 , 0
a := make([]int, 5) // len(a)=5
// 。 。
// , 。
// 5 , 0, 10
b := make([]int, 5, 10) // len(b)=5, cap(b)=10
// , 。
b = b[:cap(b)] // len(b)=5, cap(b)=5
b = b[1:] // len(b)=4, cap(b)=4
// 5
c := []int{1,2,3,4,5}
본 고 에서 말 한 것 이 여러분 의 Go 언어 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.