package main
import (
"fmt"
"regexp"
)
func main() {
text := "`От:` <@317989885321674753>\n`На:` <@163995016027439106>\n`Причина:` <@!163995016027439106>"
re := regexp.MustCompile(`\<\@\!?(\d{18})\>`)
matches := re.FindAllStringSubmatch(text, -1)
for _, match := range matches {
if len(match) > 1 {
fmt.Println(match[1])
}
}
}
func interToInt64(inp interface{}) (int64, error) {
switch v := inp.(type) {
case int:
return int64(v), nil
case int8:
return int64(v), nil
case int16:
return int64(v), nil
case int32:
return int64(v), nil
case int64:
return v, nil
case uint:
return int64(v), nil
case uint8:
return int64(v), nil
case uint16:
return int64(v), nil
case uint32:
return int64(v), nil
case uint64:
return int64(v), nil
case string:
return strconv.ParseInt(v, 10, 64)
default:
return 0, fmt.Errorf("unsupported type %T", inp)
}
}
func main() {
router := gin.Default()
router.Static("/static", "./static")
router.StaticFile("/index.htm", "./static/index.htm")
router.Run(":8080")
}
//// users/users.go
package users
type user struct {
name string
}
func New(name string) *user {
u := user{
name: name,
}
if name == "" {
u.name = "Nobody"
}
return &u
}
///// main.go
package main
import "github.com/yourproject/users"
func main() {
user := users.New("")
...........
}
go mod init your/module/path
type A struct {
Id string `db:"id" json:"id" valid:"uuidv4"`
Target string `db:"target" json:"target" valid:"uuidv4"`
}
type B struct {
Id string `db:"id" json:"id" valid:"uuidv4"`
Type int `db:"type" json:"type" valid:"-"`
SomeFieldName A `json:"A"`
}