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

网站的建设及推广在哪找可以做网站的

网站的建设及推广,在哪找可以做网站的,广东省城乡建设部网站首页,wordpress删除模板文件函数 按值传递#xff08;call by value#xff09; 按引用传递#xff08;call by reference#xff09; Go 默认使用按值传递来传递参数#xff0c;也就是传递参数的副本。函数接收参数副本之后#xff0c;在使用变量的过程中可能对副本的值进行更改#xff0c;但不…函数 按值传递call by value 按引用传递call by reference Go 默认使用按值传递来传递参数也就是传递参数的副本。函数接收参数副本之后在使用变量的过程中可能对副本的值进行更改但不会影响到原来的变量。如果你希望函数可以直接修改参数的值而不是对参数的副本进行操作你需要将参数的地址变量名前面添加 符号比如 variable传递给函数这就是按引用传递如果传递给函数的是一个指针指针的值一个地址会被复制但指针的值所指向的地址上的值不会被复制我们可以通过这个指针的值来修改这个值所指向的地址上的值。译者注指针也是变量类型有自己的地址和值通常指针的值指向一个变量的地址。所以按引用传递也是按值传递。 命名的返回值named return variables 命名返回值作为结果形参result parameters被初始化为相应类型的零值当需要返回的时候我们只需要一条简单的不带参数的 return 语句。需要注意的是即使只有一个命名返回值也需要使用 () 括起来 package main ​ import fmt ​ var num int 10 var numx2, numx3 int ​ func main() {numx2, numx3 getX2AndX3(num)PrintValues()numx2, numx3 getX2AndX3_2(num)PrintValues() } ​ func PrintValues() {fmt.Printf(num %d, 2x num %d, 3x num %d\n, num, numx2, numx3) } ​ func getX2AndX3(input int) (int, int) {return 2 * input, 3 * input } ​ func getX2AndX3_2(input int) (x2 int, x3 int) {x2 2 * inputx3 3 * input// return x2, x3return } 改变外部变量outside variable 传递指针给函数不但可以节省内存因为没有复制变量的值而且赋予了函数直接修改外部变量的能力所以被修改的变量不再需要使用 return 返回 package main ​ import (fmt ) ​ // this function changes reply: func Multiply(a, b int, reply *int) {*reply a * b } ​ func main() {n : 0reply : nMultiply(10, 5, reply)fmt.Println(Multiply:, *reply) // Multiply: 50 } 传递变长参数 如果函数的最后一个参数是采用 ...type 的形式那么这个函数就可以处理一个变长的参数这个长度可以为 0这样的函数称为变长函数。 func myFunc(a, b, arg ...int) {} defer defer 语句会将函数推迟到外层函数返回之后执行。 推迟调用的函数其参数会立即求值但直到外层函数返回前该函数都不会被调用。 关键字 defer 允许我们推迟到函数返回之前或任意位置执行 return 语句之后一刻才执行某个语句或函数为什么要在返回之后才执行这些语句因为 return 语句同样可以包含一些操作而不是单纯地返回某个值。 (译者注return 是非原子性的需要两步执行前首先要得到返回值 (为返回值赋值)return 将返回值返回调用处。 defer 和 return 的执行顺序是先为返回值赋值然后执行 defer然后 return 到函数调用处。) package main ​ import fmt ​ func main() {defer fmt.Println(world) ​fmt.Println(hello) } defer 栈 当有多个 defer 行为被注册时它们会以逆序执行。推迟的函数调用会被压入一个栈中。当外层函数返回时被推迟的函数会按照后进先出的顺序调用。 package main ​ import fmt ​ func main() {fmt.Println(counting) ​for i : 0; i 10; i {defer fmt.Println(i)} ​fmt.Println(done) } 关键字 defer 的用法类似于面向对象编程语言 Java 和 C# 的 finally 语句块它一般用于释放某些已分配的资源。 使用 defer 语句实现代码追踪 一个基础但十分实用的实现代码执行追踪的方案就是在进入和离开某个函数打印相关的消息如下 package main ​ import fmt ​ func trace(s string)   { fmt.Println(entering:, s) } func untrace(s string) { fmt.Println(leaving:, s) } ​ func a() {trace(a)defer untrace(a)fmt.Println(in a) } ​ func b() {trace(b)defer untrace(b)fmt.Println(in b)a() } ​ func main() {b() } 内置函数 Go 语言拥有一些不需要进行导入操作就可以使用的内置函数。它们有时可以针对不同的类型进行操作例如len、cap 和 append或必须用于系统级的操作例如panic。因此它们需要直接获得编译器的支持。 递归函数 将函数作为参数 函数可以作为其它函数的参数进行传递然后在其它函数内调用执行一般称之为回调。 例如 package main ​ import (fmt ) ​ func main() {callback(1, Add) } ​ func Add(a, b int) {fmt.Printf(The sum of %d and %d is: %d\n, a, b, ab) } ​ func callback(y int, f func(int, int)) {f(y, 2) // this becomes Add(1, 2) } 闭包 当我们不希望给函数起名字的时候可以使用匿名函数例如func(x, y int) int { return x y }。 这样的一个函数不能够独立存在但可以被赋值于某个变量即保存函数的地址到变量中 fplus : func(x, y int) int { return x y } 然后通过变量名对函数进行调用fplus(3,4)。当然您也可以直接对匿名函数进行调用 func(x, y int) int { return x y } (3, 4) 注意 package main ​ import fmt ​ func f() (ret int) {defer func() {ret}()return 1 } func main() {fmt.Println(f()) } 这段代码返回2因为return先取值然后指向defer最后返回。 学习参考资料 《Go 入门指南》 | Go 技术论坛 (learnku.com) Go 语言之旅
http://www.zqtcl.cn/news/453246/

相关文章:

  • 网站怎么吸引人网站优化策略分析
  • 河北建设厅网站衡水网站建设培训学校
  • 新网网站空间到期停了 咋续费网站营销推广应该怎么做
  • 网站建设和编辑实训报告安卓版网页制作软件
  • 网站模板框架站长资讯
  • 上海做网站哪家公司2022年国际国内重大新闻
  • 网站建设如何定位网站建设思路方向
  • 手机网站拦截怎么解除网站生成软件免费制作
  • 中国房地产网站茂名住房和城乡建设厅网站
  • 做网站销售工资怎么样网页设计是哪个专业
  • 吉林省住房城乡建设厅网站首页微商城模板包含哪些
  • 优秀个人网站案例wordpress 文章格式
  • 2019年做网站装修平面设计图的制作
  • 潍坊网站建设top淘宝客网站名
  • 怎么给网站做外链网上接效果图平台
  • 电影网站建设教程下载怎么经营团购网站
  • 做网站卖什么建设银信用卡网站首页
  • 大连市城乡建设档案馆网站网上竞价采购网站建设
  • 国际物流公司网站建设浏览器正能量网站免费图片
  • 河南做外贸网站的公司怎么做家庭网站
  • 知名营销类网站互联网软件开发是什么工作
  • 做网站前新闻录入网站模板
  • 网站域名做跳转要收费吗科技信息期刊
  • 登别的网站应怎么做网站推广广告词大全集
  • 漯河城乡建设管理局网站wordpress icon class
  • 买空间哪个网站好广州多少网络科技有限公司
  • 网站的网络推广方案营销型网站建设论文
  • 苏州做网站便宜的公司哪家好门店管理系统app
  • 学校多语言网站建设网络维护网站建设培训
  • Wordpress外贸网站搭建公司建站系统的应用场景