• 35_方法的使用


    概述:

    在面向对象编程中,一个对象其实也就是一个简单的值或者一个变量,在这个对象中会包含一些函数,这种带有接收者的函数,我们称为方法(method)。 本质上,一个方法则是一个和特殊类型关联的函数。

    一个面向对象的程序会用方法来表达其属性和对应的操作,这样使用这个对象的用户就不需要直接去操作对象,而是借助方法来做这些事情。

    //在go语言中,可以给任意的自定义类型(包括内置类型,但不包括本身是指针类型),添加相应的方法
    //方法总是绑定对象实例,并隐式的将实例作为第一参数(receiver)
    //格式如下: func (receiver ReceiverType)funcName(parameter)results{}
    //值传递

    代码如下:
    package main
    
    
    import "fmt"
    
    
    type Student struct {
    	//和变量定义不同,不要写var关键字
    	Id   int
    	Name string
    	Sex  byte
    	Age  int
    	Addr string
    }
    func (s Student) PrintInfo() {
    	fmt.Println("该学生姓名为:", s.Name)
    	s.Name = "steven"
    	fmt.Println("该学生姓名为:", s.Name) //steven
    }
    func (s *Student) PrintInfoName() {
    	s.Name = "steven"
    	fmt.Println("该学生姓名为:", s.Name)
    
    
    }
    func main() {
    	var s1 Student = Student{1, "zhao", 'm', 24, "js"}
    	s1.PrintInfo()
    	fmt.Println("该学生姓名为:", s1.Name) //zhao
    
    
    	//引用传递
    	var s2 *Student
    	s2 = new(Student) //如果不开辟空间的话,没有赋值的成员,会没有地址,从而报错 invalid memory address or nil pointer dereference
    	s2.Name = "zhao"
    	(s2).PrintInfoName()
    	fmt.Println("该学生姓名为:", s2.Name)

    }
    每天的价值就是不停息的前进!!!
  • 相关阅读:
    第十二篇 -- 如何向MFC对话框添加菜单
    第十一篇 -- 如何实现MFC窗口的最大化以及控件随最大化
    第二十三篇 -- 学习第二十四天打卡20190715
    第十篇 -- 学习C++宝典2005版
    第二十二篇 -- 学习第二十一天打卡20190711
    修改nginx日志格式为json
    centos7 脚本搭建SVN
    jenkin、SVN、archery集成openLDAP
    centos搭建OPENldap
    matomo 开源网站分析平台
  • 原文地址:https://www.cnblogs.com/zhaopp/p/11565313.html
Copyright © 2020-2023  润新知