Skip to content

Instantly share code, notes, and snippets.

View xigang's full-sized avatar
🎾
/*happy coding*/

Xigang Wang xigang

🎾
/*happy coding*/
View GitHub Profile
// Abs returns absolute value of number
func Abs(value float64) float64 {
return value * Sign(value)
}
// Sign returns signum of number: 1 in case of value > 0, -1 in case of value < 0, 0 otherwise
func Sign(value float64) float64 {
if value > 0 {
return 1
} else if value < 0 {
@xigang
xigang / json_decoder.go
Created March 10, 2016 06:46
使用encoding/json包反序列化JSON编码的数据
package main
import (
"encoding/json"
"fmt"
"io"
"log"
"strings"
)
@xigang
xigang / encoder.go
Created March 10, 2016 06:52
将encode编码的数据写入相关联的对象
package main
import (
"encoding/json"
"fmt"
"os"
)
type ColorGroup struct {
ID int
@xigang
xigang / golang_validate_cellphone
Last active March 10, 2016 06:53
对中国手机号的校验
const (
regular = "^(1[3-8][0-9]|14[57]|15[0-35-9]|18[07-9])\\d{8}$"
)
func Validate(mobileNum string) bool {
reg := regexp.MustCompile(regular)
return reg.MatchString(mobileNum)
}
@xigang
xigang / golang_md5
Last active March 10, 2016 06:53
MD5加密
func MD5(s string) string {
h := md5.New()
h.Write([]byte(s))
return hex.EncodeToString(h.Sum(nil))
}
func TwiceMD5(s string) string {
return MD5(MD5(s))
}
@xigang
xigang / generate_uuid.go
Last active March 10, 2016 06:56
根据需要生成指定的UUID
package main
import (
"flag"
"fmt"
"log"
uuid "github.com/nu7hatch/gouuid"
)
@xigang
xigang / goalng_text_template.go
Created March 10, 2016 08:57
golang 模板示例
package main
import (
"log"
"os"
"text/template"
)
func main() {
// Define a template.
@xigang
xigang / VersionOrdinal.go
Created March 27, 2016 01:50
比较两个字符串的版本号大小
package main
import "fmt"
func VersionOrdinal(version string) string {
// ISO/IEC 14651:2011
const maxByte = 1<<8 - 1
vo := make([]byte, 0, len(version)+8)
j := -1
for i := 0; i < len(version); i++ {
@xigang
xigang / database.go
Last active March 30, 2016 09:04
操作MySQL数据库
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
//"time"
)
/*
@xigang
xigang / verify.go
Created April 1, 2016 06:57
use publib key to verify in golang
package main
import (
"crypto"
"crypto/rsa"
"crypto/sha1"
"crypto/x509"
"encoding/base64"
"fmt"
)