Golang·常用属性

Golang·常用属性

注意事项
金额采用 float32 不能使用 float64,否则精度丢失

常用结构体

var ret struct {
        List  interface{} `json:"list"`  //数组
        Info  interface{} `json:"info"`  //对象
        Code int         `json:"code"` //状态码 0正常
        Msg  interface{} `json:"msg"`  //错误问题
    }
    
    //定义json类型值
    Axxx json.RawMessage `json:"axxx"

命令行

运行项目 go run xxx.go

项目下 运行 go mod init xxx
会自动生成go.mod文件
更新mod文件 go mod tidy

src:源代码文件 public公共
pkg:包文件
bin:相关bin文件

//生成可执行文件
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build xxx.go //(多文件则 xxx.go 改为 . 一个点符号)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main-go-linux xxx.go //(多文件则 xxx.go 改为 . 一个点符号)

// 载入网络脚本
go get http://xxxxx

// Mac VScode 一键折叠代码 command + k + 0,打开终端 command + j,

属性

0】取当前时间 date := time.Now().Format(“2006/01/02 15:04:05”)

0】判断文本存在某内容 strings.Contains(“text”, “xt”)

0】判断数组存在某内容 index := sort.SearchStrings(arr, target)

1】字符串 转整型 x,_:= strconv.Atoi(string)

2】int转符串 x = strconv.Itoa(int)

3】替换字符 x = strings.Replace(str, “]”, “”, -1)

4】分割字符 arr = strings.Split(str, “,”)

5】int64转文本 strconv.FormatInt(Unixs, 10) // 2~32 进制数

5】int64转文本 strconv.FormatFloat(3.1415926, ‘f’, 5, 64) // 3.14159

5】文本转int64数值型 x, _ := strconv.ParseInt(“string”, 10, 64)

5】float64转文本 str := strconv.FormatFloat(s, ‘f’, -1, 64)

5】float64转 int64 x := int64(float64)

5】文本转float64型 x, _ := strconv.ParseFloat(str, 64)

5】string转int32型 n, e := strconv.Atoi(strings(x))

5】int32 转 string型 str = string(int32(x))

6】文本转数组 Arr= strings.Split(srt, “|”)

6】数组转文本 str := strings.Join(arr, “”)

7】文本取最后2位数 str[len(str)-2:]

7】时间类型转换

8】异步方法 在方法涵 前面加上 go 字样

//取当前时间戳 date := time.Now().UnixMilli()
//日期转时间戳 date := time.Date(year, month, day, hour, points, seconds, 00, time.Local).UnixMilli()
//获取当前日期 date := time.Now().Format(“2006-01-02 15:04:05”)
//时间戳转日期 date := time.Unix(1389058332, 0).Format(“2006-01-02 15:04:05”)

8】浮点型转字符串

f64 := 1223.13252

sF64 := strconv.FormatFloat(f64, ‘f’, 5, 64) //方法1,可以指定输出格式、精度、长度

9】字符串转布尔型

b, _ := strconv.ParseBool(“1”)

10】布尔型转字符串

sBool := strconv.FormatBool(true) //方法1

11】结构体转换为json

data, err := json.Marshal(req) // 返回[]byte,err

fmt.Println(string(data))

12】json转换为结构体

err = json.Unmarshal([]byte(jsonStr), &resp)

13】截取文本(字节切片截取的方式)

s := “abcdefghijk” fmt.Println(s[2:4]) //cd

14】Get post 请求json后存入结构体

respBody, _ := ioutil.ReadAll(resp.Body) //请求json后
//fmt.Println("Response body: ", string(respBody))
var ipRet IpData
errs := json.Unmarshal([]byte(respBody), &ipRet) //json转对象
if err != nil {
    fmt.Println("查询 异常:", errs)
}
fmt.Println(ipRet)

15】golang函数返回不明确类型

func test(arg int) interface{}{
    if arg > 0{
        return "大于0"
    } else {
        return arg
    }
    //调用之后可以用xx.(Type)之类的去判断一下返回值的类型
    if value, ok := xxx.(int); ok {
            xxx = value
        }
}

16】接口返回

//返回时结构体
func Funxxx(xxx string) interface{} {
    return xxx
}

msg, _ := json.Marshal(typexxx) //转换成json 返回值 必须先定义异常 _:=
writer.Write(msg)    //返回值 


//返回文本
writer.Write([]byte("0")) //返回值

17】引用另一个文件

package // 名称必须与文件夹名称一致
import "项目文件名/文件名2/package名称" //引用多层文件夹 
package名称.xxx //使用

18】打包

//生成可执行文件
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main-go-linux xxx.go

19】结构体设置

type returnObj struct {
        data string `json: datas` //设置json别名
        key  string `default:"ok"` //设置默认值
    }
    var Obj returnObj //使用结构体

20】文本数组转整形数组

func StrToInt(strArr []string) []int { // 文本数组转整形数组
    res := make([]int, len(strArr))

    for index, val := range strArr {
        res[index], _ = strconv.Atoi(val)
    }
    return res
}

21】去除换行符

// 去除换行符
str = strings.Replace(str, "\n", "", -1)

22】读取sql值处理空值 则使用指针模式 var name *string 取值 *name

23】SQL读取/存储 json结构体

//存储 
strJson, _ := json.Marshal(jsonText) //定义; 结构体内容 转json文本 
string(strJson) //使用
//读取
var strbyte []byte //定义; 接收json 字段内容 
json.Unmarshal([]byte(strbyte), &obj) //取值; 转序列号

24】字符串json转存结构体 (转map)

var jsonMap map[string]interface{}           //转map
    json.Unmarshal([]byte(str), &jsonMap)    //map转json
    bodyJsons, _ := json.Marshal(jsonMap)    //json转字节类型
    json.Unmarshal([]byte(bodyJsons), &Objs) //存结构体

25】Golang 把json中的unicode编码转换成中文字符

//Golang 把json中的unicode编码转换成中文字符 
func UnescapeUnicode(raw []byte) ([]byte, error) {
    str, err := strconv.Unquote(strings.Replace(strconv.Quote(string(raw)), `\\u`, `\u`, -1))
    if err != nil {
        return nil, err
    }
    return []byte(str), nil
}

26】延时

time.Sleep(2 * time.Second) // 延时2秒

610 Views
分享你的喜爱
linwute
linwute

我要像梦一样自由,像大地一样宽容;
在艰辛放逐的路上,点亮生命的光芒;
我要像梦一样自由,像天空一样坚强;
在曲折蜿蜒的路上,体验生命的意义;

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注