首页 > 其他分享 >无涯教程-Go - 函数指针

无涯教程-Go - 函数指针

时间:2023-12-21 17:07:29浏览次数:33  
标签:temp int fmt After 无涯 value swap Go 函数指针

Go编程语言使您可以将指针传递给函数,只需将函数参数声明为指针类型。

在下面的示例中,我们将两个指针传递给一个函数,并更改该函数内部的值,该值会反映在调用函数中-

package main

import "fmt"

func main() {
   /* 局部变量定义 */
   var a int=100
   var b int=200

   fmt.Printf("Before swap, value of a : %d\n", a )
   fmt.Printf("Before swap, value of b : %d\n", b )

   /* 调用函数来交换值。
   * &a 表示指向 ie 的指针。变量 a 的地址和
   * &b 表示指向 b 的指针。变量 b 的地址。
   */
   swap(&a, &b);

   fmt.Printf("After swap, value of a : %d\n", a )
   fmt.Printf("After swap, value of b : %d\n", b )
}
func swap(x *int, y *int) {
   var temp int
   temp=*x    /* 将值保存在地址 x */
   *x=*y      /* 将 y 放入 x */
   *y=temp    /* 将temp值放入 y */
}

编译并执行上述代码后,将产生以下输出-

Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :200
After swap, value of b :100

参考链接

https://www.learnfk.com/go/go-passing-pointers-to-functions.html

标签:temp,int,fmt,After,无涯,value,swap,Go,函数指针
From: https://blog.51cto.com/u_14033984/8925125

相关文章

  • golang简单判断22-65535开发情况
    packagemainimport( "fmt" "net" "sync" "time")funcmain(){ server:="42.51.129.175"//要检查的服务器地址 ports:=make([]int,65535)//要检查的端口范围,从22到65535 fori:=22;i<=65535;i++{ ports......
  • MongoDB限定条件的查询语句
    在MongoDB里面查询语句使用如下:--限定条件进行查询db.getCollection('source_news').find("_id":{$in:[28829497251611,28829497251535,28829497251452,28829497251359,28829497251276,28829497251238,28829497251130,28829497250977,28829497250914,28829497......
  • 无涯教程-Go - 多维数组函数
    Go编程语言允许多维数组,这是多维数组声明的一般形式-varvariable_name[SIZE1][SIZE2]...[SIZEN]variable_type如,以下声明创建了三维5、10、4个整数数组-varthreedim[5][10][4]int二维数组二维数组是多维数组的最简单形式,本质上,二维数组是一维数组的列表,要声明大小为[x......
  • vscode 错误 go: go.mod file not found in current directory or any parent directo
    前言安装VSCODE后,新建立的GO文件按F5出错。go:go.modfilenotfoundincurrentdirectoryoranyparentdirectory;see'gohelpmodules'处理步骤开启gomodules功能命令行输入goenv-wGO111MODULE=on建立src目录比如我程序文件夹名为gosrc,则目录为gosrc|_src......
  • 无涯教程-Go - 函数闭包
    Go编程语言支持可以充当函数闭包的匿名函数,当我们要内联定义函数而不传递任何名称时,将使用匿名函数。在我们的示例中,我们创建了一个函数getSequence(),该函数返回另一个函数,此函数的目的是关闭上层函数的变量i形成闭包。如-packagemainimport"fmt"funcgetSequence()func......
  • permify google zanzibar 类似的开源授权服务实现
    permifygooglezanzibar类似的开源授权服务实现,openfga也是一个类似的开源实现参考架构从下图可以看出permify主要包含了四个组件,PermissionServer,RelationshipServer,SchemaServer,WatchServer说明目前不少开源的授权认证方案,都会基于配置定义的模式开发(schema)比较灵活......
  • 无涯教程-Go - Function as Value函数
    在下面的示例中,我们使用函数定义初始化了一个变量,该函数变量的目的只是使用内置的math.sqrt()函数。如-packagemainimport("fmt""math")funcmain(){/*声明一个函数变量*/getSquareRoot:=func(xfloat64)float64{returnmath.Sqrt(x)}/*......
  • 【Django】加密 settings.py文件中的数据库密码
    1.使用fromcryptography.fernetimportFernet第三方库pip3installcryptography2.Fernet的使用fromcryptography.fernetimportFernet#生成加密密钥key=Fernet.generate_key()#创建Fernet对象fernet=Fernet(key)#要加密的原始数据message=b"Hell......
  • Typora+PicGo 搭建免费图床
    前言对于经常写文章的人来说图片的管理一直是一个比较头疼的问题,最好的解决方案就是搭建一个图床,写文章的时候直接把图片上传上去,只要拿到链接在哪都能访问。如果还是免费的,是不是爽飞了。来试一下吧极力推荐:Typora+PicGo+SM.MS为什么选SM.MS:七牛云https收费、又拍云需要......
  • 【go】Go (Golang) 语言-Golang 定时器Timer和Ticker、time.AfterFunc、time.NewTicke
    Golang定时器Timer和TickerGolang定时器包括:一次性定时器(Timer)和周期性定时器(Ticker)。编程中经常会通过timer和ticker、AfterFunc定时器NewTicker是设定每隔多长时间触发的,是连续触发,而计时器NewTimer是等待多长时间触发的,只触发一次,两者是不同的。等待时间函数AfterFunc是......