uuid
的version
和variant
是基于您使用的generator
。有多种类型的生成器,例如random_generator
和name_generator
。每个生成器都会将自己的version
和variant
值注入到生成的uuid
中。这是直接来自源代码,要注意两个生成器的变体和版本是不同的。
// set variant
// must be 0b10xxxxxx
*(u.begin()+8) &= 0xBF;
*(u.begin()+8) |= 0x80;
// set version
// must be 0b0100xxxx
*(u.begin()+6) &= 0x4F; //0b01001111
*(u.begin()+6) |= 0x40; //0b01000000
// set variant
// must be 0b10xxxxxx
*(u.begin()+8) &= 0xBF;
*(u.begin()+8) |= 0x80;
// set version
// must be 0b0101xxxx
*(u.begin()+6) &= 0x5F; //0b01011111
*(u.begin()+6) |= 0x50; //0b01010000