注意

记录一个 go 语言编程中,可能不小心忽略的一个点,

  • 当函数的 出参 如果是 数组、结构体、字典 类型时,是不需要声明的,可以直接使用。

  • 但是如果 出参指针 类型,则必须要显示的声明。

代码示例

type person struct {
name string
} func main() {
r := getList()
fmt.Println(r)
m := getMap()
fmt.Println(m)
p := getPerson()
fmt.Println(p)
// 会报错
pp := getPointer()
fmt.Println(pp)
} func getList() (l []int) {
for i := 0; i < 10; i++ {
l = append(l, i)
}
return l
} func getMap() (m map[int]int) {
for i := 0; i < 5; i++ {
m[i] = i
}
return m
} func getPerson() (p person) {
p.name = "张三"
return p
}
func getPointer() (p *person) {
p.name = "张三"
return p
}

go 的形参的更多相关文章

  1. C++:一般情况下,设计函数的形参只需要两种形式

    C++:一般情况下,设计函数的形参只需要两种形式.一,是引用形参,例如 void function (int &p_para):二,是常量引用形参,例如 void function(const ...

  2. 《征服 C 指针》摘录5:函数形参 和 空的下标运算符[]

    一.函数的形参的声明 C 语言可以像下面这样声明函数的形参: void func(int a[]) {     // ... } 对于这种写法,无论怎么看都好像要向函数的参数传递数组. 可是,在 C ...

  3. python学习道路(day4note)(函数,形参实参位置参数匿名参数,匿名函数,高阶函数,镶嵌函数)

    1.函数 2种编程方法 关键词面向对象:华山派 --->> 类----->class面向过程:少林派 -->> 过程--->def 函数式编程:逍遥派 --> ...

  4. C++ 函数形参发生动态绑定时指针增长步长与静态类型一致

    牛客网上的题: class A { public: long a; }; class B : public A { public: long b; }; void seta1(A* data, int ...

  5. C语言 01 形参实参

    之前的都在印象笔记记录 continue 结束本轮循环体,进入下一次循环.break 直接结束整个while循环 形参:定时函数时函数名后面中的参数实参:调用函数时传入的具体数据基本数据类型作为形参, ...

  6. python3 函数的形参、实参、位置参数、默认参数、关键字参数以及函数的递归

    python 版本 3.5 #Author by Andy#_*_ coding:utf-8 _*_def func(x,y=2): print('我是形参%s'%x) print('我是默认参y-- ...

  7. 问题:C++形参默认值为什么一定要放在最后?

    问题:C++形参默认值为什么一定要放在最后? 1.会出现歧义! 2.从汇编角度看是怎么回事?   待解答!!

  8. 形参是ofstream

    今天写了一段代码报错 void GetEigenvalue(pcl::PointCloud<pcl::PointXYZ>::ConstPtr cloud, vector<int> ...

  9. 通过指定函数/方法形参类型提高PHP代码可靠性

    指定形参类型是PHP 5就支持的一项特性.形参支持array - 数组. object - 对象两种类型. class User{ public $name; public $password; fu ...

  10. c++形参改变实参(对指针的理解

    这几天搞逻辑比较晕,居然把指针的概念都混淆了. eg:int *p;//当然不对指针初始化在有些编译器是通不过编译的,比如VS(尤其是选中了SDL) 指针p是一个对象,定义开始没有分配了内存空间,只是 ...

随机推荐

  1. 郁金香 注入DLL代码 与MFC窗口DLL文件 开源

    10/10号更新 DLL注入器注入DLL卡死 问题 新增打开控制台 将阳光输出到控制台中 注入DLL代码 1 #include <stdio.h> 2 #include<Window ...

  2. Java开发环境配置(win7-64bit)

    Java开发环境配置(win7-64bit) java Java开发环境配置(win7-64bit) Java开发环境配置(win7-64bit) 1.概述 2.文本用到的工具 3.环境变量配置 4. ...

  3. 手机访问wamp及wampserver64设置开放权限后局域网无法连接

    服务器配置:在手机上WampServer电脑端网页的效果! 1.本地虚拟主机下的 Apache 目录中的bin 目录中的 config 配置文件 http.config文件使用代码编辑器. 2.将ht ...

  4. js/jquery 所有页面点击事件(持续更新)

    // 切换菜单 <div class="box">                <div class="box-item" id=" ...

  5. Using / for division outside of calc() is deprecated and will be removed in Dart Sass 2.0.0.

    Scss/Sass 项目里使用 / 报错:Using / for division outside of calc() is deprecated and will be removed in Dar ...

  6. KingbaseES R6集群物理copy方式手工添加新备库节点

    案例说明:对于主库数据量比较大的环境,在添加新节点是可以采用在线clone方式创建新的备库节点,也可以在离线的状态下,直接拷贝其中一个备库的所有集群相关目录来创建新的备库节点.本案例介绍了通过离线物理 ...

  7. cximage菜单(Load Jpeg Resource)

    // 菜单项 cximage->resource->Load Jpeg Resource //CxImage\demo\demo.cpp ON_COMMAND(ID_CXIMAGE_LOA ...

  8. CGLB动态代理

    CGLB动态代理 一.CGLIB实现接口 public interface ProductInterface { void test(); } /** * 用来测试接口 */ private stat ...

  9. ASP判断一个字符是否为汉字的两种方法

    有的时候我们要求用户一定要输入汉字的信息,比如姓名和地址.那么,如何判断一个字符是不是汉字呢?其实在asp中至少有两种方法: 一.直接将某字符用asc转为ascii码,如果是英文,他应该是0-127的 ...

  10. SAP SPOOL_INTERNAL_ERROR

    运行SE38程序 RSPO0041