UUID는 구글 구현에 의해 개발 된 16 바이트 UUID 모듈 생성하는 RFC4122를 , UUID는, V2, V3, V4, V5, 각 버전 등의 달성 V1. 일반적으로, 경우에만하는 것이 v4를 생성 할 수있는 고유 일련 번호, 다음, 일반적으로 V4 버전, 새로운 ()와 NewRandom ()를 생성하기 위해, NewRandom의 새로운 캡슐화 패닉 오류 처리에 넣고,하지만하지 않습니다 거의 이론적 패닉이 발생할 가능성이있다.
FUNC 새로운 () UUID
FUNC NewRandom () ( UUID , 오류 )
다음 예는 다음과 같다 :
package main
import (
"fmt"
"github.com/google/uuid"
)
func main() {
for i := 0; i < 10; i++ {
id := uuid.New()
fmt.Printf("%s %s\n", id, id.Version().String())
}
for i := 0; i < 10; i++ {
id2,err := uuid.NewRandom()
if err != nil{
fmt.Printf("%v\n", err)
}
fmt.Printf("%s %s\n", id2, id2.Version().String())
}
}
출력 :
adba0f28-8489-4d99-a5c8-a12eb6c960c9 VERSION_4
0b92bb34-34b2-4f21-9bf8-70ac181b39b5 VERSION_4
177b9491-2ad2-4396-8fd3-f7440404f46f VERSION_4
c098c60b-4f98-4fe3-9fc3-7cec9a7c0717 VERSION_4
0b58b54c-a941-47c9-a889-5871e65b223d VERSION_4
96203b6d-b084-483b-af92-e5b2443cc29f VERSION_4
e5b32605-e017-4a22-9acb-5841ad28ebdd VERSION_4
15f9680e-432e-4faa-b631-53b6f7e70e9a VERSION_4
40f82f91-ef81-4303-a59c-58651f972795 VERSION_4
221e71ec-e9d1-4632-a3f6-0275b3a288ae VERSION_4
c1d4908a-9b9c-44fd-90f0-7e232f0e5ff1 VERSION_4
6027e676-b46a-4281-a1e0-b3bf6291998a VERSION_4
da589a0e-e172-4dac-bc4c-fc50c9624a6e VERSION_4
9c1fe414-3bec-4b7a-9187-b80ee97a1e67 VERSION_4
93fc7459-31c2-4dcb-be9a-e3c80d82453d VERSION_4
5339d058-7241-4f74-a6e3-27ad5d32ba74 VERSION_4
ed4efa2b-2954-4f46-bb0c-b65250494bde VERSION_4
a98c5172-a302-4ef2-967e-1029604ffd1f VERSION_4
b316af48-0c67-48bc-bba1-59c8d18f7685 VERSION_4
e4e39e07-3e15-4117-b572-73d553548249 VERSION_4
말했다 새로운 방법은 패닉이있을 수 있지만 소스 코드는 본질적으로 볼 공식 문서에 가능한 에러. 리더는 리눅스에서 운영 체제 동안 오류 "암호화 / 랜드는"독자가 16 난수 바이트에 적어도 읽을 수 있습니다 따라 달라집니다 getRandom (2) 에서하지 않을 경우 읽기 는 / dev / urandom을가 읽기, getrandom (2) 256 바이트 내의 문서 신호에 의해 중단되지 상기 그리고 / 디바이스 / urandom을 된 문서의 오차가있을 수 언급하지 않았다. 그래서 이론적으로 오류없이 할 수있다.
사용에 다른 UUID 버전을 참조하십시오
"이동 언어 : (4적인 버전 버전 1, 버전 2, 버전 3, 버전 5) 실현 UUID의 다양한 버전에 대한 구글이 구글의 UUID 모듈"