当前位置: 首页 > news >正文

曲靖网站制作公司在线定制家具

曲靖网站制作公司,在线定制家具,计算机做网站,阿里云搭建网站教程目录 1.函数分类 2.函数的声明和定义 3.函数传参 4.函数返回值 5.递归调用 为完成某一功能的程序指令(语句)的集合#xff0c;称为函数。 1.函数分类 在Go语言中#xff0c;函数是第一类对象#xff0c;我们可以将函数保持到变量中。函数主要有具名和匿名之分#x…目录 1.函数分类 2.函数的声明和定义 3.函数传参 4.函数返回值 5.递归调用 为完成某一功能的程序指令(语句)的集合称为函数。 1.函数分类 在Go语言中函数是第一类对象我们可以将函数保持到变量中。函数主要有具名和匿名之分包级函数一般都是具名函数具名函数是匿名函数的一种特例当匿名函数引用了外部作用域中的变量时就成了闭包函数闭包函数是函数式编程语言的核心。 举例代码如下 具名函数就和c语言中的普通函数意义相同具有函数名、返回值以及函数参数的函数。 func Add(a, b int) int {return ab }匿名函数指不需要定义函数名的一种函数实现方式它由一个不带函数名的函数声明和函数体组成。 var Add func(a, b int) int {return ab }解释几个名词如下 闭包函数返回为函数对象不仅仅是一个函数对象在该函数外还包裹了一层作用域这使得该函数无论在何处调用优先使用自己外层包裹的作用域。 一级对象支持闭包的多数语言都将函数作为第一级对象就是说函数可以存储到变量中作为参数传递给其他函数最重要的是能够被函数动态创建和返回。 包go的每一个文件都是属于一个包的也就是说go是以包的形式来管理文件和项目目录结构的。 2.函数的声明和定义 Go 语言函数定义格式如下 func fuction_name([parameter list])[return types]{函数体 }解析func函数由func开始声明function_name函数名称parameter list参数列表return_types返回类型函数体函数定义的代码集合 3.函数传参 Go语言中的函数可以有多个参数和多个返回值参数和返回值都是以传值的方式和被调用者交换数据。在语法上函数还支持可变数量的参数可变数量的参数必须是最后出现的参数可变数量的参数其实是一个切片类型的参数。 当可变参数是一个空接口类型时调用者是否解包可变参数会导致不同的结果我们解释一下解包的含义代码如下 func main(){var a []int{1, 2, 3}Print(a...) // 解包Print(a) // 未解包 }func Print(a ...int{}) {fmt.Println(a...) }以上当传入参数为a...时即是对切片a进行了解包此时其实相当于直接调用Print(1,2,3)。当传入参数直接为 a时等价于直接调用Print([]int{}{1,2,3}) 4.函数返回值 不仅函数的参数可以有名字也可以给函数的返回值命名。 在 Go 语言中defer 关键字用于延迟defer函数的执行直到包含 defer 语句的函数返回之前。defer 语句会将函数推迟到当前函数执行完成后执行不论函数是正常返回还是出现异常。这在资源管理、错误处理等方面非常有用。 举例代码如下 func Find(m map[int]int, key int)(value int, ok bool) {value,ok m[key]return }如果返回值命名了可以通过名字来修改返回值也可以通过defer语句在return语句之后修改返回值举例代码如下 func mian() {for i : 0 ; i3; i {defer func() { println(i) }} }// 该函数最终的输出为 // 3 // 3 // 3以上代码中如果没有defer其实返回值就是0,1,2但defer语句会在函数return之后才会执行也就是或只有以上函数在执行结束return之后才会执行defer语句而该函数return时的i值将会达到3所以最终的defer语句执行printlin的输出都是3。 defer语句延迟执行的其实是一个匿名函数因为这个匿名函数捕获了外部函数的局部变量v这种函数我们一般叫闭包。闭包对捕获的外部变量并不是传值方式访问而是以引用的方式访问。 这种方式往往会带来一些问题修复方法为在每一轮迭代中都为defer函数提供一个独有的变量修改代码如下 func main() {for i : 0; i 3; i {i : i // 定义一个循环体内局部变量idefer func(){ println(i) } ()} }func main() {for i : 0; i 3; i {// 通过函数传入i// defer 语句会马上对调用参数求值// 不再捕获而是直接传值defer func(i int){ println(i) } (i)} }5.递归调用 Go语言中函数还可以直接或间接地调用自己也就是支持递归调用。Go语言函数的递归调用深度逻辑上没有限制函数调用的栈是不会出现溢出错误的因为Go语言运行时会根据需要动态地调整函数栈的大小。这部分的知识将会涉及goroutint和动态栈的相关知识我们将会在之后的博文中向大家解释。 它的语法和c很相似格式如下 func recursion() {recursion() /* 函数调用自身 */ }func main() {recursion() }
http://www.hkea.cn/news/14486066/

相关文章:

  • 公司网站备案后在百度上多长时间可以搜索到wordpress is tag
  • 山西做网站的公司有哪些衡阳网站设计公司
  • 天津河东做网站贵吗godaddy网站建设教程
  • 做平台的网站精品课程网站建设的背景及意义
  • 如何做二维码跳转到网站网站建设尺寸像素是多少钱
  • 网站开发简历 自我评价简单的编程代码
  • 网站建设万首先金手指13百度上做优化一年多少钱
  • 爱站网关键词查询系统魔力百科网站做料理视频
  • 周杰伦做的广告网站西安网站建设网络推广
  • dede网站地图位置音乐网站开发与需求
  • 河津市城乡建设局网站wordpress允许ping
  • 移动网站排名教程做视频网站需要多大的带宽
  • 商标注册网站官网百度外链查询工具
  • 做资源网站有哪些猎头公司注册条件
  • 响应式模板网站建设内蒙古中汇建设有限公司网站
  • 石家庄网站制作系统ppt怎么做流程图
  • 需要做网站的企业资源用网站做的人工智能
  • 网站建设佳木斯编程到底是学些什么
  • 南京网络营销外包价格南京seo网络优化公司
  • 深圳高端网站制作价格wordpress主题the7中文汉化版
  • 网站建设分析泽库县wap网站建设公司
  • 织梦网站栏目调用济南市住房建设网站
  • 一个网站怎么做pc和移动端网页内容
  • 动态交互图网站做国外零售做什么网站
  • 建立网站该怎样做2016网站建设总结
  • 网站建设制作细节大型网站的标准
  • 常营网站建设凡科做的网站如何绑定域名
  • 黑龙江做网站的公司有哪些后台做网站的题
  • 中江网站建设深圳网站设计 三把火科技
  • 网站策划书基本项目自己做淘宝客登录网站