我虽然是一项简单的任务,但遇到了一些麻烦。我有一个函数,它格式化一个包含小时和分钟值的结构并将其格式化为字符串。type Clock struct { h int m int}func (c *Clock) String() string { h string m string if c.m < 10 { m := fmt.Sprintf("0%d", c.m) } else { m := fmt.Sprintf("%d", c.m) } if c.h < 10 { h := fmt.Sprintf("0%d", c.h) } else { h := fmt.Sprintf("%d", c.h) } return fmt.Sprintf("%s:%s", h, m)}我得到的错误是:syntax error: unexpected name, expecting semicolon or newline or }对于h string上面的行。知道这里发生了什么吗?我想我会简单地使用一个临时变量来格式化 int 值
2 回答
aluckdog
TA贡献1847条经验 获得超7个赞
声明String一次方法变量 ( var)。不要用短变量声明 ( :=)重新声明它们。例如,
package main
import "fmt"
type Clock struct {
h int
m int
}
func (c *Clock) String() string {
var (
h string
m string
)
if c.m < 10 {
m = fmt.Sprintf("0%d", c.m)
} else {
m = fmt.Sprintf("%d", c.m)
}
if c.h < 10 {
h = fmt.Sprintf("0%d", c.h)
} else {
h = fmt.Sprintf("%d", c.h)
}
return fmt.Sprintf("%s:%s", h, m)
}
func main() {}
- 2 回答
- 0 关注
- 299 浏览
添加回答
举报
0/150
提交
取消