go语言中使用type创建对象

427 阅读1分钟

go语言中可以通过关键字type来定义一个结构体为对象,不像Java中一个类可以表示一个对象

如下

//不像java需要指定 各种参数的构造函数
type Student struct {
	name    string
	sex     int8
	age     int8
	classId string
}

类型在后面 字段在前面,不像java中类型在前面 字段在后面,类型前还需要修饰符,然后配合get set设置属性值

相对于在go语言中简洁多了,不管是创建对象 还是设置属性值都很简洁

//类似java全部参数构造
	fmt.Println(Student{"张三", 1, 18, "1-1"})
	fmt.Println(Student{"李四", 1, 19, "1-2"})

	//可以指定 部分参数构造
	fmt.Println(Student{name: "张三", sex: 2, age: 19, classId: "1-3"})

	//其他属性不指定 表示为空
	fmt.Println(Student{name: "王五"})

	//键值对初始化
	var s1 = &Student{
		name: "詹桑",
	}
	fmt.Println(s1)

	//访问成员变量
	var stu Student
	//指针值初始化
	stu.age = 19
	stu.sex = 1
	stu.classId = "2-1"
	stu.name = "小王啊"
	fmt.Println(stu)

	println("函数传递 ")

可以看到也不需要set get 也不需要构造方法也需要重写各种方法如toString 等,直接赋值输出即可,就是这么丝滑
在这里插入图片描述

go语言中如何设置专属对象调用方法呢
可以通过如下设置方法
func 方法名(type 类型)表示只有当前type类型对象可以调用方法


func (stude Student)stuVoid() {

	fmt.Println("打印name :", stude.name)
}

对象.调用即可

	stu.stuVoid()