我在 Go 语言中遇到了一个小问题。我有这个结构:
type Time struct{
hour,min,sec int
}
Run Code Online (Sandbox Code Playgroud)
以及初始化它的函数:
func init_Time(t Time) (int,int,int){
t.hour, t.min, t.sec = time.Now().Clock()
return t.hour, t.min, t.sec
}
Run Code Online (Sandbox Code Playgroud)
是main:
func main(){
var Tm Time
Tm.hour, Tm.min, Tm.sec = init_Time(Tm)
fmt.Printf("Time: %d:%d:%d", Tm.hour, Tm.min, Tm.sec)
}
Run Code Online (Sandbox Code Playgroud)
我也导入了time包。它工作得很好,但我有两个问题:
在我的代码中,为什么在函数中两次对变量(小时,分钟,秒)进行赋值init_Time:
t.小时、t.分钟、t.秒 = time.Now().Clock()
并在main():
Tm.hour, Tm.min, Tm.sec = init_Time(Tm)
Run Code Online (Sandbox Code Playgroud)
有必要还是我的错误?
init_Time通过将函数转换为 void 函数来修改该函数,它会返回值"Time: 0:0:0"而不是当前时间?(例子:)
func init_Time(t Time) {
t.hour, t.min, t.sec = time.Now().Clock()
} …Run Code Online (Sandbox Code Playgroud)