精华内容
下载资源
问答
  • Interface 是一组抽象方法(未具体实现的方法,仅包含方法名参数返回值的方法)的集合,如果实现了 interface 中的所有方法,即该类型就实现了该接口。 注意: (1)接口中不能含有属性; (2)每种类型都能实现多个...

    1.接口简介

    Interface 是一组抽象方法(未具体实现的方法,仅包含方法名参数返回值的方法)的集合,如果实现了 interface 中的所有方法,即该类型就实现了该接口。

    注意:
    (1)接口中不能含有属性;
    (2)每种类型都能实现多个接口;
    (3)未初始化的接口类型变量的值为 nil。

    接口声明格式:

    type InterfaceName interface {
        //方法列表  
    }  
    

    2.函数返回类型是接口时返回对象的指针还是值

    函数返回类型是接口时返回对象的指针还是值,这个要看具体的需要。期望原对象在后续的操作中被修改则返回对象的指针。返回对象的值则返回的是对象的副本,对对象副本的修改不会影响原对象。

    返回对象的值示例。

    package main
    
    import (
            "fmt"
    )
    
        type Men interface {
            Print()
            Set()
        }   
    
       type Employee struct {
            company string
        }   
       
      
       func (e Employee) Set() {
            e.company="alibaba"
       }   
      
       func (e Employee) Print() {
            fmt.Printf("company=%v\n", e.company)
       }   
    
    var e = Employee {
        company:"tencent",
    }
    
    //返回对象的指针
    func createEmployeeObj() Men {
        return e 
    }
    
    func main() {
        o:=createEmployeeObj()
        e1,ok := o.(Employee)
        if ok {
            e1.company="alibaba"
            e1.Print()
        }   
        e.Print()
    }
    

    输出结果:

    company=alibaba
    company=tencent
    

    可见函数返回类型是接口时返回对象的值,后续对该对象的副本进行修改并不会改变原对象。

    返回对象的指针示例。

    package main
    
    import (
            "fmt"
    )
    
        type Men interface {
            Print()
            Set()
        }   
    
       type Employee struct {
            company string
        }   
       
      
       func (e *Employee) Set() {
            e.company="alibaba"
       }   
      
       func (e *Employee) Print() {
            fmt.Printf("company=%v\n", e.company)
       }   
    
    var e = Employee {
        company:"tencent",
    }
    
    //返回对象的指针
    func createEmployeeObj() Men {
        return &e  
    }
    
    func main() {
        o:=createEmployeeObj()
        o.Set()
        o.Print()
    	e.Print()
    }
    

    输出结果:

    company=alibaba
    company=alibaba
    

    可见函数返回类型是接口时返回对象的指针,后续对该对象的修改操作则会改变原对象。


    参考文献

    [1]GoLang之方法与接口

    展开全文
  • C++ 自定义函数返回类型

    千次阅读 2019-06-29 00:11:06
    为了能够让C++的函数返回类型也可以不受数量上限制,我们可以先定义一个我们希望的数据类型的或者结构体。如果使用的话,该当中只包含成员变量和构造函数。下面我们定义一个同时返回一个数字和一个字符串的...

    知识点小结

    C++的基本数据类型限制了函数的返回类型,其不像python一样可以直接返回一个list,list里面可以包含多个想要返回的内容。为了能够让C++的函数返回类型也可以不受数量上限制,我们可以先定义一个我们希望的数据类型的类或者结构体。如果使用类的话,该类当中只包含成员变量和构造函数。下面我们定义一个同时返回一个数字和一个字符串的数据类型。具体代码如下:

    #include <iostream>
    using namespace std;
    
    //通过设置一个只有构造函数的类,建立一个自定义的返回值类型
    class Returndata
    {
    public:
      int id;
      string name;
    
    public:
      Returndata(int id, string name)
      {
        this->id = id;
        this->name = name;
      }
    };
    
    Returndata createdata(int id, string name)
    {
      Returndata newdata(id, name);
    
      return newdata;
    }
    
    
    int main()
    {
      Returndata a = createdata(1, "bob");
      cout << a.id << " " << a.name << endl;
      return 0;
    }
    

    也可以使用结构体,代码如下:

    struct Returndata
    {
      int id;
      string name;
    };
    
    Returndata createdata(int id, string name)
    {
      //Returndata newdata(id, name);
      Returndata newdata = {id, name};
      //newdata.id = id;
      //newdata.name = name;
    
      return newdata;
    }
    
    
    int main()
    {
      Returndata a;
      a = createdata(1, "bob");
      cout << a.id << " " << a.name << endl;
      return 0;
    }
    

     

    展开全文
  • java 函数返回类型

    千次阅读 2019-06-09 18:27:20
    在学习工厂模式看到函数返回类型声明为父类(抽象),返回类型却可以是其子类(具体)?

    在学习工厂模式时看到函数的返回类型声明为父类(抽象类),返回类型却可以是其子类(具体类)?

    展开全文
  • void*作为函数返回类型(C语言)

    千次阅读 2021-05-22 17:49:17
    void*作为函数返回类型的情况 导入 C语言中有一种返回值类型比较特殊,就是void*,void作为返回值我们都很熟悉了,但是一般情况void*作为返回值的情况很少见,因此有些童鞋可能对相关方面有疑惑,当初我也是在一道...

    void*作为函数的返回类型的情况

    导入

     C语言中有一种返回值类型比较特殊,就是void*,void作为返回值我们都很熟悉了,但是一般情况void*作为返回值的情况很少见,因此有些童鞋可能对相关方面有疑惑,当初笔者也是在一道题中遇到的这种返回类型,并没有明白什么意思,后来查阅了一些资料有了一些了解,现在把我的这些经验分享给大家!

    void*介绍

     void* 就是一个任意类型的指针,和void恰恰相反,void* 它并不是空,也不是什么都不返回,而是可以返回一个任意类型的指针,这里需要谨记的有两个点,一就是任意类型,二是指针

    代码示例

     在这里我们给出了一个简单的void* 返回int* 类型的函数和一个返回char* 类型的函数,具体请看一下代码。

    #include <stdlib.h>
    #include <stdio.h>
    void reInt(int);
    void* reIntp(int*);
    void* reChar(char*);
    int main()
    {
    	int num=10;
    	int *nump;
    	char str[10]="CSDN";
    	char* strp;
    	reInt(num);
    	nump = (int*) reIntp(&num); //强制类型转化不能忘!
    	strp = (char*)reChar(str); //强制类型转化不能忘!
    	printf("主函数输出:%d\n",*nump);
    	printf("主函数输出:%s\n",strp);
    	return 0;
    }
    //一般返回类型的函数
    void reInt(int a)
    {
    	printf("void返回类型的函数的输出:%d\n",a);
    	return; // 没有返回值
    }
    //void*返回类型的函数 返回int*
    void* reIntp(int *a)
    {
    	printf("void*返回类型返回int*的函数的输出:%d\n", *a);
    	return a; // 返回 int *
    }
    //void*返回类型的函数 返回char*
    void* reChar(char* str)
    {
    	printf("void*返回类型返回char*的函数的输出:%s\n",str);
    	return str;
    }
    

    输出

    void返回类型的函数的输出:10
    void*返回类型返回int*的函数的输出:10
    void*返回类型返回char*的函数的输出:CSDN
    主函数输出:10
    主函数输出:CSDN
    Press any key to continue
    

    提醒:在主函数中接收void*返回值类型的函数返回的值时,需要对数据进行强制类型转换一下哦。

    结论

     通过代码示例及输出,我们可以很清楚地感受到 void* 返回类型的函数的强大,能够返回任意类型的指针(int* ,char* ,float* 等等),但是一般情况下最好不要使用此返回类型哦~好啦,关于 void* 的基础讲解到这里就结束了。

    感谢阅读,如有不懂或不对的地方欢迎在评论区留言~

    展开全文
  • C++函数——返回类型

    千次阅读 2018-07-09 21:50:37
        无返回值函数: 没有返回值的return语句只能用在返回类型是void的函数中。     有返回值函数: return语句的第二种形式提供了函数的结果。 只要函数返回类型不是void, 则该函数内的每条return语句...
  • java函数返回类型

    万次阅读 2016-03-28 15:26:16
    Java有8种基本类型,均可以作为函数返回类型,除此之外还可以返回特殊类型——。如下面的代码: public static ClassA getObject(){  ClassA newObject = new ClassA();  newObject.value+= 10;  
  • C++函数返回类型为一个类时

    千次阅读 2009-12-20 20:10:00
    仅仅是测试一下,当函数返回类型为一个类时的情况。#includeusing namespace std;class A{public: int i; int *n; A() // 构造函数 { n= new int; *n = 101; } ~A()
  • C++返回类型指针注意事项

    千次阅读 2019-02-24 11:07:34
    博主很久没有用C++了,最近在用C++遇到一点小问题,就是在返回类型指针,若该是在函数中创建,则不能正确返回。问题解决后在这里记录。 开始 step.1 错误代码准备 在VS2017中新建C++控制台应用,并编辑...
  • ts定义返回函数类型

    万次阅读 2019-06-30 10:22:45
    一般函数声明: //第一种形式 let c: Function; c = function(): void { console.log('It work'); } //第二种形式 function test(): Function{ return function():void{ console.log('it work'); ...
  • 函数返回类型为指针类型的一些问题

    万次阅读 多人点赞 2012-04-04 14:43:19
    函数返回一个可变地址) 分析该错误: 1>”tigerjibo”是一个字符常量,存放在只读数据段中,是不能被修改的。 2>char p[],是一个局部变量,函数被调用,在栈上开辟一个空间来存放数组P的内容。 3>char p[]=”...
  • c++ 函数返回类对象

    千次阅读 2016-12-03 11:41:26
    当函数返回类对象的时候,c++编译器会进行返回值优化 返回值优化(Return value optimization,缩写为RVO)是C++的一项编译优化技术。即删除保持函数返回值的临时对象。这可能会省略两次复制构造函数,即使复制构造...
  • C++函数返回类型和return语句

    千次阅读 2017-10-28 19:02:48
    无返回值的函数没有返回值的return语句只能用在返回类型是void 的函数中,返回void 的函数不要求必须有return 语句,编译器会自动的在最后一句后面隐式执行return。有返回值的函数基本知识如果函数有返回值,那么...
  • C++14尝鲜:函数返回类型自动推导

    千次阅读 2017-01-17 23:49:55
    函数返回类型自动推导
  • 在C/C++ 中,不返回任何信息的函数原型为“void function(...);...C++Primer第五版中文版(Page28)明确指出,main()函数返回类型必须是int类型,即整数类型。 虽然在一些编译器中,void main() 可以通
  • SQL SERVER 自定义函数 返回类型

    千次阅读 2016-09-20 17:38:41
    1.创建函数 create function testFunTable(@count int) returns @temptale table (intcount int ,intcountAdd int) as begin insert into @temptale values(@count,@count+1) return end 2.调用...
  • 关于函数的返回值与返回类型

    千次阅读 2018-03-29 14:19:15
    返回类型只是决定分一块什么类型的内存来存储该返回值。返回值不管是不是外部传入还是内部定义,只要不是返回引用,在函数执行到 } 会拷贝生成一份匿名对象到外部函数栈。同样的,形参只要不是引用类型,传入参数...
  • 1. C++基础—有返回值类型函数(返回引用类型) 1.1 引用的定义 引用就是某个目标变量的“别名”(alias),对引用的操作与对变量直接操作效果完全相同。 申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,...
  • C++函数返回值是自定义类型情况

    千次阅读 2018-06-20 11:19:53
    在C++中,函数的返回值是自定义类型的情况主要分为两种,一种是非引用类型的自定义;另一种是引用类型的自定义。1 返回值是自定义的非引用类型在这种情况下,使用该拷贝构造函数,根据返回值来创建该的新...
  • Python 函数返回值类型

    千次阅读 2019-05-13 12:26:00
    [ i for i in dir(set) if not i.startswith('_') ]    转载于:https://www.cnblogs.com/meilong/p/Python-cha-kan-shu-ju-lei-xing-de-fang-fa.html
  • Python函数返回结果的技巧

    千次阅读 2020-05-19 10:21:28
    文章目录1. 单个函数不要返回多种类型2. 使用 partial 构造新函数3....Python 的函数返回方式 Python 函数通过调用 return 语句来返回结果。使用 return value 可以返回单个值,用 return value1,v...
  • C语言中,函数定义的返回值类型

    千次阅读 多人点赞 2019-12-24 16:01:34
    目录一个题目解析 一个题目 下列函数返回值的类型是()。 func (float x) { float y; y=3*x-1;...返回值类型 函数名(参数类型 参数名1, 参数类型 参数名2, …, 参数类型 参数名n) { 执行语句 …… re...
  • 【C++】C++和对象、构造函数和析构函数

    千次阅读 多人点赞 2018-06-03 20:32:37
    它即可包含描述事物的数据,又可包含处理这些数据的函数在程序运行时是被用作样板来建立对象的。所以要建立对象,首先必须定义。 定义 定义一个的一般格式为: class 类名{ private: 成员表1; public:...
  • C++中函数返回值类型

    千次阅读 2018-06-28 17:01:59
    C++中任何一个程序有且...被调函数的的返回值可有可无,但是被调函数作为表达式,必须要有返回值来返回给主调函数,此时其返回值类型可以为各种类型,如:double ,bool, int 等等。而main函数的返回值一般为i...
  • python3 range()函数返回类型

    万次阅读 2018-12-22 22:57:50
    Python3 range()函数返回类型 在前几天看了range()函数,当时知道可以用for循环来遍历range函数产生的数字,还可以使用list()函数将range()函数产生的结果直接转换为列表,但是range()函数直接产生的是个什么...
  • 本文covers: 1. 函数重载、重写、重定义之间的区别是什么? 2. 协变返回类型函数重载具有怎么的联系? 3. C++引入协变返回类型的真正意义是什么?
  • C++之——模板与函数模板用法

    千次阅读 2018-07-13 10:22:41
    模板针对仅数据成员和成员函数类型不同的。 使用模板的目的就是能够让程序员编写与类型无关的代码。比如编写了一个交换两个整型int 类型的swap函数,这个函数就只能实现int 型,对double,字符这些类型无法实现...
  • 详解函数的返回值类型和return语句

    万次阅读 多人点赞 2019-03-10 15:57:59
    没有返回值的return语句只能返回类型是void函数。返回void的函数不要求非得有return语句,编译器会在void函数的最后一句加上一个return语句。 可以使用return语句,在void函数中提前退出。与在迭代...
  • Python——返回函数

    千次阅读 多人点赞 2018-08-16 12:03:33
    一....高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。 &gt;&gt;&gt; def lazy_sum(*args): ... def sum(): ... z = 0 ... for i in args: ... z += i ... ret...
  • 函数能否返回函数内指针

    万次阅读 多人点赞 2018-06-01 08:48:12
    我们大家都知道指针函数返回指针不能指向函数内的自动变量,如果需要返回函数的内部变量的话,就需要将该变量声明为静态变量。为什么函数能够返回 静态变量的地址而不能返回局部自动变量的地址,到底什么样的对象...
  • 一、数据类型:整型、浮点型、布尔类型 1、整型:整数 注意:python2中长整型需要在后面加l,python3中不区分整型和长整型 2、浮点型:小数 注意:浮点型和整型的区别就是有无小数点 e记法:科学计数法,会...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,164,128
精华内容 865,651
关键字:

当函数的返回类型是类时