go语言中append处理slice
每次调用appen都会根据当前的cap对slice进行评估, 如果cap不够,就按照2倍长度进行扩容

package mainimport ("fmt"
)/*
append 是在slice原有的基础上,添加新元素
若是原先就是长度,不会替换原先的元素,而是在后面进行增加
*/
func append1() {fmt.Println("========================append1=======================")s := make([]int, 5)fmt.Println("len = ", len(s), "cap = ", cap(s))s = append(s, 1, 2, 3)fmt.Println("len = ", len(s), "cap = ", cap(s))fmt.Println(s)
}/*
每次调用append函数都会根据当前slice的长度和cap计算,若是不够会按照2倍的形式进行扩容
*/
func append2() {fmt.Println("==========================append2=====================")s := make([]int, 0)fmt.Println("len = ", len(s), "cap = ", cap(s))s = append(s, 1, 2, 3, 4)fmt.Println("len = ", len(s), "cap = ", cap(s))fmt.Println(s)s = append(s, 1)fmt.Println("len = ", len(s), "cap = ", cap(s))fmt.Println(s)
}/*
go语言里面函数返回值错误:
1. 函数返回值,只有一个时可以不命名,命名时需要加上括号
2. 多个返回值,只要有一个命名,剩余的也要进行命名func funcMui(x, y int) (sum int, error) {return x + y, nil
}
3. 多个返回值可以都不命名,但是需要加上括号
func funcMui(x, y int) (int, error, int) {return x + y, nil, 3
}
*/func funcMui(x, y int) (int, error, int) {return x + y, nil, 3
}/*
new 和make的区别
new和make都是go语言的内建函数,用来分配内存,但是适用类型不同
new(T)会为T类型的新值分配已置零的内存空间,并且返回地址,如数组结构体等
make(T, args)返回初始化之后的T类型的值,这个值并不是T类型的零值,也不是指针*T
是经过初始化之后T的引用, make只适用于slice, map和channel
*/func main() {append1()append2()_,_,_ = funcMui(2, 3)
}

执行输出:

========================append1=======================
len =  5 cap =  5
len =  8 cap =  10
[0 0 0 0 0 1 2 3]
==========================append2=====================
len =  0 cap =  0
len =  4 cap =  4
[1 2 3 4]
len =  5 cap =  8
[1 2 3 4 1]

go语言中append函数的使用相关推荐

  1. map python函数_Python语言中map函数

    本文主要向大家介绍了Python语言中map函数,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 1.对可迭代函数'iterable'中的每一个元素应用'function'方法,将 ...

  2. 关于C语言中printf函数“输出歧视”的问题

    目录 关于C语言中printf函数"输出歧视"的问题 问题描述 探索问题原因 另一种研究方法 问题结论 关于C语言中printf函数"输出歧视"的问题 问题描述 ...

  3. C语言中atoi()函数的用法

    C语言中atoi()函数的用法 一.学习要点: 1.int atoi(const char *str)把参数str所指向的字符串转换为一个整数: 二.代码 #include<stdio.h> ...

  4. r语言中c函数错误,R语言中c()函数与paste()函数的区别说明

    c()函数:将括号中的元素连接起来,并不创建向量 paste()函数:连接括号中的元素 例如 c(1, 2:4),结果为1 2 3 4 paste(1, 2:4),结果为"1 2" ...

  5. C语言中main函数的研究,以及对代码断点调试的研究(王爽老师 汇编语言)

    版权声明:本文为博主原创文章,未经博主允许不得转载. 我们知道作为一个语言本身是不会有诸如从main函数开始运行这样的条件(深层次的说 底层汇编代码不会指定从mian函数开始的这样的条件,程序开始的位 ...

  6. 浅析C语言中strtol()函数与strtoul()函数的用法

    这篇文章主要介绍了浅析C语言中strtol()函数与strtoul()函数的用法,注意其将字符串转换成long型的区别,需要的朋友可以参考下 头文件: ? 1 #include <stdlib. ...

  7. c语言memcopy_C语言中memcpy 函数的用法详解

    C语言中memcpy 函数的用法详解 memcpy(内存拷贝函数) c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址 ...

  8. c语言中memcpy函数_带有示例的C中的memcpy()函数

    c语言中memcpy函数 memcpy()函数 (memcpy() function) memcpy() is a library function, which is declared in the ...

  9. c语言中 调用函数除函数名外,【单选题】在 C 语言中 , 调用函数除函数名外 , 还必须有 ( ). (10.0分) A. 函数预说明 B. 实际参数 C. ( ) D. 函数返回值...

    [单选题]在 C 语言中 , 调用函数除函数名外 , 还必须有 ( ). (10.0分) A. 函数预说明 B. 实际参数 C. ( ) D. 函数返回值 更多相关问题 下列关于IMOECDIS性能标 ...

最新文章

  1. python indexerror_python – “IndexError:位置索引器超出范围”,当它们明显没有时
  2. SpringMVC注解@RequestParam全面解析
  3. MySQL CURDATE() 函数
  4. linux中top工具,Linux命令工具 top详解
  5. 45套精美的 ( Android, iPhone, iPad ) 手机界面设计素材和线框图设计工具
  6. Sublime2 配置python 和 c++
  7. eclipse中配置heritrix1.14.3
  8. DirectX修复工具使用技巧之二——手动修复C++创建失败的文件
  9. 计算机声音控制程序,怎么管理电脑各程序的音量-单独调节各个程序音量的方法 - 河东软件园...
  10. dx11 Shaders for maya
  11. 服务器时间和系统时间不同步,电脑时间不同步怎么办 电脑时间同步不了的解决方法【详解】...
  12. 基于CIM的智慧城市建设
  13. “女人~,你在玩火”一个有磁性的声音说道——常用自动化测试工具
  14. oracle_j000,DBA手记:System State转储之ROW CACHE对象
  15. 为不喝的朋友准备的!如何委婉地拒绝劝酒
  16. HMM(隐马尔可夫)笔记
  17. 阻塞队列(一):ArrayBlockingQueue
  18. percona-tool文档说明(总)
  19. 龙岭迷窟真的这么好看?今天我们就用 Java 爬取豆瓣数据好好分析一下!
  20. .ttf字体文件引入vue项目及使用

热门文章

  1. NYOJ 16(矩形嵌套)
  2. Kickstart 多系统安装配置
  3. 如何利用jquery实现一句话全选/取消全选的实例代码
  4. 浅谈Configure和Setting
  5. Visual C# 2010从入门到精通
  6. Hadoop wordcount
  7. WEB安全_csrf攻击
  8. 迭代Iterator的用法
  9. easyui from 缓存问题处理
  10. 一种高效快速的内存池实现(附源码)