基於go的反射實現查詢生成器

2021-09-12 23:02:55 字數 879 閱讀 4230

參考go系列教材反射章節,源**沒有實現輸出字段,我根據對反射的理解實現了對字段進行輸出。beego的orm就是基於反射實現的。

/*

# @time : 2019-01-05 16:57

# @author : smallforest

# @software : goland

*/package main

import (

"fmt"

"reflect"

)type order3 struct

type employee3 struct

func createquery3(q inte***ce{}) else

}query = fmt.sprintf("%s) values(",query)

v := reflect.valueof(q)

for i := 0; i < v.numfield(); i++ else

case reflect.string:

if i == 0 else

default:

fmt.println("unsupported type")

return}}

query = fmt.sprintf("%s)", query)

fmt.println(query)

return

}fmt.println("unsupported type")

}func main()

createquery3(o)

e3 := employee3

createquery3(e3)

i := 90

createquery3(i)

}

go 實現乙個簡單的UUID生成器

檢視源 實現方法 uuid 通過三部分組成 curtime 22 generaterid 12 sequenceid 具體原理如下 首先每乙個uuid生成器有乙個id 在生成uuid的時候 先取當前時間距離1970的秒數作為高位,generaterid作為中間 如果本次生成的時間和上一次的時間相同,...

基於snowflake的Id序列號生成器

背景 在分布式微服務系統中,通常需要全域性唯一的序列號,需求實現簡單高效,通常的做法可以用資料庫的自增id,uuid生成等。但資料庫自增id侷限在於依賴於資料庫表,在效率上有所折扣,尤其是高併發量的場景。而uuid一般比較長,關鍵是無序的。twitter的snowflake解決了這種需求,最初twi...

python上下文管理之基於生成器的實現

我們還可以用裝飾器 decorators 和生成器 generators 來實現上下文管理器。python有個contextlib模組專門用於這個目的。我們可以使用乙個生成器函式來實現乙個上下文管理器,而不是使用乙個類。讓我們看看乙個基本的,沒用的例子 from contextlib import ...