Go语言中文手册 · uuid

admin 2024-08-15 16:34:49 编程 来源:ZONE.CI 全球网 0 阅读模式

1. uuid

1.1.1. 什么是uuid?

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

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

A universally unique identifier (UUID) is a 128-bit 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;
}

go生成uuid:

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

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

使用:

package main

import (
    "fmt"

    uuid "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)}
TypeScript学习笔记 编程

TypeScript学习笔记

TypeScript学习笔记[TOC]TypeScript概述TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型
高德地图JSAPI学习笔记 编程

高德地图JSAPI学习笔记

[toc]概述地图 JS API 2.0 是高德开放平台免费提供的第四代 Web 地图渲染引擎, 以 WebGL 为主要绘图手段,本着“更轻、更快、更易用”的服
golangTCPpush 编程

golangTCPpush

在当今互联网时代,即时通讯成为了人们生活中不可或缺的一部分。而实现即时通讯的关键技术之一就是TCP Push。作为一名专业的golang开发者,我们不仅需要掌握
nodegolang性能对比 编程

nodegolang性能对比

在当前的编程世界中,Node.js和Golang是两种备受瞩目的技术。它们都拥有出色的性能和能力,但在某些方面却存在差异。本文将对Node.js和Golang进
评论:0   参与:  26