一、函数
go语言重的函数是组织好的、可重复使用的、用于执行指定任务的代码块。其实和java中的函数(方法)是一样的。
Go语言中定义函数使用func
关键字,具体格式如下:
func 函数名(参数)(返回值){
函数体
}
- 函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能重名(包的概念详见后文)。
- 参数:参数由参数变量和参数变量的类型组成,多个参数之间使用
,
分隔。 - 返回值:返回值由返回值变量和其变量类型组成,也可以只写返回值的类型,多个返回值必须用
()
包裹,并用,
分隔。 - 函数体:实现指定功能的代码块。
二、实战
package main
import (
"crypto/md5"
"encoding/hex"
"encoding/json"
"fmt"
"time"
)
/**
函数
函数用 func 声明。
函数可以有一个或多个参数,需要有参数类型,用 , 分割。
函数可以有一个或多个返回值,需要有返回值类型,用 , 分割。
函数的参数是可选的,返回值也是可选的。
*/
func main() {
var res Result
res.Code=200
res.Msg="成功"
toJson(&res)
fmt.Println("res==",res)
setData(&res)
fmt.Println("res====",res)
const name = "zhongyuan"
s := MD5(name)
fmt.Println("s===",s)
str := getTimeStr()
fmt.Printf("当前时间 str= %s \n",str)
timeStr :=getStrTime()
fmt.Println("timeStr = ",timeStr)
unix :=getTimeUnix()
fmt.Println("unix=",unix)
}
type Result struct {
Code int `json:"code"`
Msg string `json:"msg"`
}
func toJson(res *Result) {
jsons ,errs :=json.Marshal(res)
if errs !=nil{
fmt.Println("json marshal error",errs)
}
fmt.Println(string(jsons))
}
func setData(res *Result) {
res.Code = 500
res.Msg = "失败"
}
// Md5 函数
func MD5(str string) string {
s:=md5.New()
s.Write([] byte(str))
return hex.EncodeToString(s.Sum(nil))
}
//获取当前时间字符串函数
func getTimeStr() string {
return time.Now().Format("2023-02-18 10:10:10")
}
func getStrTime() string {
return time.Now().String()
}
//获取当前时间戳
func getTimeUnix() int64 {
return time.Now().Unix()
}