测试下函数,可以返回多个值:

报错sum变量声明了没使用。修改下改成下划线
Go
package main
import "fmt"
func main() {
_, str := add(9526, 1)
fmt.Println(str)
}
func add(a,b int)(c int, str string) {
c = a + b
str = fmt.Sprintf("%d + %d = %d", a, b, c)
return
}
打印:

ok.
再测试下结构体:
Go
package main
import "fmt"
func main() {
testStruct()
}
type Person struct {
name string
nickName string
wugong string
}
func testStruct() {
var guojing Person
guojing.name = "郭靖"
guojing.nickName = "靖哥哥"
guojing.wugong = "降龙十八掌"
// new创建指针
duanzhengchun := new(Person)
duanzhengchun.name = "段正淳"
duanzhengchun.nickName = "段郎"
duanzhengchun.wugong = "一阳指"
zhouzhiruo := &Person{} // 创建实例并取地址,返回指针
zhouzhiruo.name = "周芷若"
zhouzhiruo.nickName = "周芷若"
zhouzhiruo.wugong = "九阴真经"
laoma := Person{
"马老师",
"老马",
"闪电五连鞭",
}
fmt.Printf("我是%s, 我擅长%s\n", guojing.nickName, guojing.wugong)
fmt.Printf("我是%s, 我擅长%s\n", duanzhengchun.nickName, duanzhengchun.wugong)
fmt.Printf("我是%s, 我擅长%s\n", zhouzhiruo.nickName, zhouzhiruo.wugong)
fmt.Printf("我是%s, 我擅长%s\n", laoma.nickName, laoma.wugong)
}
打印:

ok.