注意

记录一个 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. Sentinel熔断与限流

    1.简介 在线文档: https://sentinelguard.io/zh-cn/docs/system-adaptive-protection.html 功能: 流量控制 速率控制 熔断和限流 和 ...

  2. 2021级《JAVA语言程序设计》上机考试试题7

    现在是学生查看,重置密码,原来是搜索,现在直接浏览,直接重置密码,改了下 代码如下: <%@ page language="java" contentType="t ...

  3. 队列——queue的用法(及洛谷B3616)

    队列的概念 在说队列之前,先回忆一下栈是什么,我们一般说栈是一个先进后出的数据结构,而队列就是先进先出的数据结构. 队列是定在表的一端进行插入,表的另一端进行删除. 通常,我们称进数据的一端为队尾,出 ...

  4. JZOJ 3889

    \(\text{Problem}\) 小H是个善于思考的学生,她正在思考一个有关序列的问题. 她的面前浮现出了一个长度为 \(n\) 的序列 \({ai}\),她想找出两个非空的集合 \(S.T\). ...

  5. rem自动计算

    写法一: //rem自动计算 (function (designWidth, maxWidth, viewWidth) { var doc = document, win = window, docE ...

  6. git 的基础使用

    配置: 首次安装完git后,需要配置信息 检查配置: git修改:  git config --global user.name "Your_username"    重新设置gi ...

  7. docker问题记录解决

    1.普通用户docker命令提示permission denied(权限问题) [user1@docker-1 root]$ docker imagesGot permission denied wh ...

  8. Spring、SpringMVC的区别

    Spring是IOC和AOP的容器框架,SpringMVC是基于Spring功能之上添加的Web框架,想用SpringMVC必须先依赖Spring.简单点的话可以将SpringMVC类比于Struts ...

  9. python命令行开发--click

    目录 前言 安装 快速上手 参考文档 前言 按照官方的介绍:Click 是一个利用很少的代码以可组合的方式创造优雅命令行工具接口的 Python 库. 它是高度可配置的,但却有合理默认值的" ...

  10. PV动态供给之nfs

    需求描述:利用nfs实现PV动态供给 前提:部署好nfs服务器  这里地址是 192.168.1.35  path: /ifs/k8s NFS:是一个主流的文件共享服务器. # yum install ...