Go实战--golang生成uuid(The way to go)

Go实战--golang生成uuid(The way to go),第1张

概述生命不止,继续 go go go !!! 在做server开发的时候,难免用到uuid,这里与大家分享一下golang中如何生成uuid。 什么是uuid? uuid是Universally Unique Identifier的缩写,即通用唯一识别码。 uuid的目的是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突

生命不止,继续 go go go !!!

在做server开发的时候,难免用到uuID,这里与大家分享一下golang中如何生成uuID。

什么是uuID?

uuID是Universally Unique IDentifIEr的缩写,即通用唯一识别码。

uuID的目的是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的 uuID。

A universally unique IDentifIEr (UUID) is a @R_142_5028@ number used to IDentify information in computer systems.

例如java中生成uuID:

package com.mytest;import java.util.UUID;public class UTest {    public static voID main(String[] args) {        UUID uuID = UUID.randomUUID();        System.out.println(uuID);}}

c++中生成uuID:

#pragma comment(lib,"rpcrt4.lib")#include <windows.h>#include <iostream>using namespace std;int main(){    UUID uuID;    UuIDCreate(&uuID);    char *str;    UuIDToStringA(&uuID,(RPC_CSTR*)&str);    cout<<str<<endl;    RpcStringFreeA((RPC_CSTR*)&str);    return 0;}
github.com/satori/go.uuID

目前,golang中的uuID还没有纳入标准库,我们使用github上的开源库:

go get -u github.com/satori/go.uuID

使用:

package mainimport (    "fmt"    "github.com/satori/go.uuID")func main() {    // 创建    u1 := uuID.NewV4()    fmt.Printf("UUIDv4: %s\n",u1)    // 解析    u2,err := uuID.FromString("f5394eef-e576-4709-9e4b-a7c231bd34a4")    if err != nil {        fmt.Printf("Something gone wrong: %s",err)        return    }    fmt.Printf("Successfully parsed: %s",u2)}
uuID在websocket中使用

这里就是一个简单的使用而已,在websocket中为每一个连接的客户端分配一个uuID。

golang中可以使用github.com/gorilla/websocket为我们提供的WebSocket开发包。

声明一个客户端结构体:

type ClIEnt struct {    ID     string    socket *websocket.Conn    send   chan []byte}

使用:

clIEnt := &ClIEnt{ID: uuID.NewV4().String(),socket: conn,send: make(chan []byte)}
总结

以上是内存溢出为你收集整理的Go实战--golang生成uuid(The way to go)全部内容,希望文章能够帮你解决Go实战--golang生成uuid(The way to go)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1276593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存