需要两个以上的基本数据类型或自定义类型来声明定义函数的时候,你就可以使用结构体
package main
import (
"fmt"
"reflect"
)
func main() {
var student1 struct {
Name string
Age int
}
student1.Name = "Codey"
student1.Age = 18
fmt.Println("student1数据类型:", reflect.TypeOf(student1))
fmt.Println("student1的值:", reflect.ValueOf(student1))
student2 := struct {
Name string
Age int
}{
Name: "Codey",
Age: 18,
}
fmt.Println("student2数据类型:", reflect.TypeOf(student2))
fmt.Println("student2的值:", reflect.ValueOf(student2))
}
student1数据类型: struct { Name string; Age int }
student1的值: {Codey 18}
student2数据类型: struct { Name string; Age int }
student2的值: {Codey 18}
使用自定义数据类型的方式来自定义一个结构体类型,这样就可以达到定义一个对象的相同效果。
package main
import (
"fmt"
"reflect"
)
type Student struct {
Name string
Age int
}
func main() {
var student1 Student
student1.Name = "Codey"
student1.Age = 18
fmt.Println("student1数据类型:", reflect.TypeOf(student1))
fmt.Println("student1的值:", reflect.ValueOf(student1))
}
student1数据类型: main.Student
student1的值: {Codey 18}
函数名前可以接收一个自定数据类型的参数,参数传递的形式为自定义数据类型变量.函数名()的形式传递,这样外表看起来就和面向对象编程一致了
package main
import "fmt"
type Student struct {
Name string
Age int
}
func newStudent(name string, age int) Student {
return Student{Name: name, Age: age}
}
func (s Student) PrintAge() {
fmt.Println(s.Age)
}
func main() {
student1 := newStudent("Codey", 18)
student2 := newStudent("Tom", 19)
fmt.Println("student1年龄:")
student1.PrintAge()
fmt.Println("student2年龄:")
student2.PrintAge()
}
student1年龄:
18
student2年龄:
19
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。