注意

记录一个 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. 安装和配置Java开发环境JDK

    我们通常软件开发的操作系统选择Windows,生产环境选择linux或windows Server.移动开发可能是安卓或IOS和鸿蒙系统等. Windows下一般选择的是64位的操作系统,一般建议CP ...

  2. Spring(Spring的读取外部资源- p 命名空间)

    Spring读取外部资源 实际开发中,数据库的资源一般会单独保存起来.一般会保存到后缀为properties的文件中,方便维护和修改,如果Spring加载资源,就需要在spring.xml中读取pro ...

  3. 推荐一款新的自动化测试框架:DrissionPage!

    今天给大家推荐一款基于Python的网页自动化工具:DrissionPage.这款工具既能控制浏览器,也能收发数据包,甚至能把两者合而为一,简单来说:集合了WEB浏览器自动化的便利性和 request ...

  4. 功放世界web新手区

    第一题:view_source: 顾名思义就是查看网页源代码,按一下f12就ok 第二题:robots协议 换言之就是,robots协议告诉了我们,什么可以爬,什么不可以爬,要是觉得坐牢没什么,那就可 ...

  5. Git基础操作及协作流程

    一整套流程帮你实践整个 Git 操作基础流程. 来源:https://docs.microsoft.com/zh-cn/learn/paths/intro-to-vc-git/ Git 介绍 配置 G ...

  6. 跳板攻击之:Socks 代理转发

    跳板攻击之:Socks 代理转发 目录 跳板攻击之:Socks 代理转发 1 Socks 代理转发原理 2 实验环境 2.1 客户端配置 2.2 服务端配置 2.3 利用 Socks 代理扫描内网主机 ...

  7. Linux:grep 查找文件内容

    在 Windows 中打开文件用查找功能可以查找我们想要的字符,前提是要打开文件.Linux 有一个指令不用打开文件就可以查询字符,而且支持正则表达式-- grep 指令.不仅如此,grep 还支持在 ...

  8. postgresql中条件表达式 coalesce、nullif 、greatest、least

    一.postgresql中条件表达式 1.1 GREATEST和LEASTGREATEST(value [, ...]) LEAST(value [, ...])# 注意比较值得类型一定要相同案例:比 ...

  9. loj3076

    参照 E_Space 的候选队论文,我们建出广义串并联图进行「删一度点」「缩二度点」「叠合重边」操作合并信息的表达式树. 我们把其描述成一颗 Leafy Tree. 我们不妨在每个叶节点处存一个点或者 ...

  10. Less的相关知识

    1,less中有关 & 符号的使用 渲染结果:(hover的效果也出现)