代码拉取完成,页面将自动刷新
// Copyright 2019-present Facebook Inc. All rights reserved.
// This source code is licensed under the Apache 2.0 license found
// in the LICENSE file in the root directory of this source tree.
package sid
import (
"crypto/rand"
"database/sql/driver"
"errors"
"fmt"
"math/big"
"strconv"
)
type ID string
func (i ID) String() string {
return string(i)
}
func (i ID) Value() (driver.Value, error) {
r, err := strconv.ParseInt(string(i), 10, 64)
if err != nil {
return nil, err
}
return r, nil
}
func (i *ID) Scan(src any) error {
switch v := src.(type) {
case nil:
return nil
case int64:
*i = ID(fmt.Sprint(v))
return nil
}
return errors.New("not a valid ID")
}
func New() ID {
return NewLength(10)
}
func NewLength(l int) ID {
var out string
for len(out) < l {
result, _ := rand.Int(rand.Reader, big.NewInt(100))
out += fmt.Sprint(result.Uint64() + 1)
}
return ID(out[:l])
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。