前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go编程基础-基础篇 14

Go编程基础-基础篇 14

原创
作者头像
未来最可爱的人
修改2021-03-22 10:18:31
2540
修改2021-03-22 10:18:31
举报
文章被收录于专栏:编程基础编程基础

结构体类型

需要两个以上的基本数据类型或自定义类型来声明定义函数的时候,你就可以使用结构体

代码语言:txt
复制
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))
}
代码语言:txt
复制
student1数据类型: struct { Name string; Age int }
student1的值: {Codey 18}
student2数据类型: struct { Name string; Age int }
student2的值: {Codey 18}

使用自定义类型来模拟对象

使用自定义数据类型的方式来自定义一个结构体类型,这样就可以达到定义一个对象的相同效果。

代码语言:txt
复制
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))
}
代码语言:txt
复制
student1数据类型: main.Student
student1的值: {Codey 18}

使用函数来模拟面向对象的方法

函数名前可以接收一个自定数据类型的参数,参数传递的形式为自定义数据类型变量.函数名()的形式传递,这样外表看起来就和面向对象编程一致了

代码语言:txt
复制
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()
}
代码语言:txt
复制
student1年龄:
18
student2年龄:
19

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 结构体类型
  • 使用自定义类型来模拟对象
  • 使用函数来模拟面向对象的方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档