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

余姚电商交易网站建设网站推广与电话销售

余姚电商交易网站建设,网站推广与电话销售,游戏开发软件有哪些,上海网络平台网站文章目录 4.Go语言的方法#xff0c;函数#xff0c;接口4.1. 方法4.1.1. 指针接受者4.1.2. 值接收者和指针接收者有什么区别#xff1f;4.1.3. 方法 4.2. 接口4.2.1. 接口定义 4.3. 函数4.3.1. 函数介绍 4.Go语言的方法#xff0c;函数#xff0c;接口 4.1. 方法 4.1.1… 文章目录 4.Go语言的方法函数接口4.1. 方法4.1.1. 指针接受者4.1.2. 值接收者和指针接收者有什么区别4.1.3. 方法 4.2. 接口4.2.1. 接口定义 4.3. 函数4.3.1. 函数介绍 4.Go语言的方法函数接口 4.1. 方法 4.1.1. 指针接受者 在编程领域指针接收者是指在定义方法时将指针作为参数传递给方法的一种形式。这种方式可以使方法直接操作指针所指向的原始数据而不是对参数的副本进行操作。在Go语言中方法可以定义在结构体类型上接收者是方法名称前的类型声明。指针接收者是将方法绑定到接收者类型的一个指针上因此在方法内部对接收者的修改会影响原始值。相对于值接收者而言指针接收者可以避免在每次调用方法时复制接收者从而提高程序的性能。在实际应用中应该根据具体需求选择合适的接收者类型 4.1.2. 值接收者和指针接收者有什么区别 在编程中值接收者和指针接收者是函数或方法参数的两种不同传递方式。它们之间的区别如下 值传递值接收者通过将实际参数的值复制到函数或方法内部来进行传递。在函数或方法内部对值进行的修改不会影响到原始变量。 package mainimport fmt// 定义结构体type Person struct {Name stringAge int}// 定义方法func (p Person) PrintInfo() {p.Age 25}func main() {person : Person{Name: Alice, Age: 20}person.PrintInfo()fmt.Println(person.Age) }在上述示例中PrintInfo()方法是值接收者。当调用该方法时person的值被复制到方法内部。即使在方法内部修改了p.Age的值原始的person.Age并不会改变。 指针传递指针接收者通过传递指向实际参数的指针来进行传递。在函数或方法内部对指针所指向的内容进行的修改会反映在原始变量上。 package mainimport fmt// 定义结构体type Person struct {Name stringAge int}// 定义方法func (p *Person) PrintInfo() {p.Age 25}func main() {person : Person{Name: Alice, Age: 20}person.PrintInfo()fmt.Println(person.Age) }在上述示例中PrintInfo()方法是指针接收者。当调用该方法时person的地址被传递到方法内部。通过修改指针所指向的内容原始的person.Age的值也会改变。 选择使用值接收者还是指针接收者取决于你的需求。如果你只需要读取参数的值而不需要修改它那么使用值接收者通常更简单和安全。如果你需要修改参数的值或者在函数或方法内部通过参数进行一些复杂的操作那么使用指针接收者更合适。 4.1.3. 方法 在 Go 语言中方法是与特定类型关联的函数它是一种将数据和相关操作封装在一起的方式。方法可以定义在结构体类型上使得对结构体的操作更加方便和自然。 方法的定义格式如下 接收者类型.方法名(参数列表) (返回值列表) func (p Person) PrintInfo(num int) (num){}其中接收者类型是方法所属的类型通常是一个结构体或接口类型。方法名是方法的名称可以根据需要自行定义。参数列表是方法接受的参数可以包含零个或多个参数。返回值列表是方法返回的结果可以包含零个或多个返回值。 2. 以下是一个示例定义了一个名为PrintInfo的方法在Person结构体上 package mainimport fmt// 定义结构体 type Person struct {Name stringAge int }// 定义方法 func (p Person) PrintInfo() {fmt.Println(Name:, p.Name)fmt.Println(Age:, p.Age) }在这个示例中PrintInfo方法接受一个Person类型的接收器并打印出该结构体的姓名和年龄。 要调用方法可以使用以下语法 接收者.方法名(参数)例如对于上面定义的Person结构体和PrintInfo方法可以这样调用 package mainimport fmtfunc main() {// 创建结构体实例p : Person{Name: Alice, Age: 25}// 调用方法p.PrintInfo() }通过这种方式我们可以将数据和相关操作封装在一起提高代码的可读性和可维护性。 除了普通方法Go 语言还支持指针接收器方法和接口方法。指针接收器方法可以通过指针修改接收者的字段值而接口方法允许实现了特定接口的任意类型对象调用该方法。 4.2. 接口 4.2.1. 接口定义 接口类型 是由一组方法签名定义的集合。接口的声明与使用 package mainimport (fmtmath ) //接口声明形状 type Shape interface {Area() float64Perimeter() float64 }//矩形结构体 type Rect struct {width float64height float64 }//圆的结构体 type Circle struct {radius float64 }//计算面机的方法矩形实现 func (r Rect) Area() float64 {return r.width * r.height }//计算周长矩形实现 func (r Rect) Perimeter() float64 {return 2 * (r.width r.height) }//计算面积的方法圆实现 func (c Circle) Area() float64 {return math.Pi * c.radius * c.radius }//计算周长圆实现 func (c Circle) Perimeter() float64 {return 2 * math.Pi * c.radius }func main() { //声明接口类型的变量具体值为矩形var s Shape Rect{10, 3}fmt.Printf(type of s is %T\n, s)fmt.Printf(value of s is %v\n, s)fmt.Printf(value of s is %0.2f\n\n, s.Area())//声明接口类型的变量具体值为圆s Circle{10}fmt.Printf(type of s is %T\n, s)fmt.Printf(value of s is %v\n, s)fmt.Printf(value of s is %0.2f\n, s.Area())}此外接口是golang中实现多态性的唯一好途径。go语言中还有空接口的概念这里不做赘述。 4.3. 函数 4.3.1. 函数介绍 在 Go 语言中函数是一种用于组织和重用代码的基本单位。函数可以执行特定的任务并可以接受零个或多个参数并返回零个或多个值。 以下是 Go 语言中函数的一些关键特性和语法 函数定义使用func关键字开始函数定义。函数名是你为函数指定的名称参数列表列出了函数接受的参数如果有函数体包含了执行任务的具体代码。 func functionName(parameters) results {// 函数体 }函数调用通过函数名和相应的参数来调用函数。 functionName(arguments)参数传递函数可以通过值、引用或切片等方式传递参数。 返回值函数可以返回零个或多个值。 func functionName() results {// 返回值return values }匿名函数可以定义匿名函数即没有具名函数的函数。 func() {// 匿名函数体 }函数作为参数Go 语言允许将函数作为参数传递给其他函数。 递归函数函数可以递归地调用自己。 Go 语言中的函数是第一类对象可以作为变量、参数和返回值进行传递和操作。这使得函数在 Go 语言中具有高度的灵活性和可复用性。 此外go中还有 一等函数和闭包的概念这边先不做解释
http://www.zqtcl.cn/news/352490/

相关文章:

  • 最专业的网站建设收费2021没封的网站有人分享吗
  • 站酷设计网站官网入口文字设计wordpress是服务器吗
  • 律师手机网站模板天津做推广的公司
  • 西安市高新区建设规划局网站织梦小说网站模板下载地址
  • 网站开发简历 自我评价网页设计报告论文
  • 如何让网站不被收录不备案 国内网站
  • 站长之家域名买天猫店铺去哪里买
  • asp.net做的网站模板下载万网x3 wordpress
  • 设计网站设计目标天津市建设工程管理总队网站
  • 网站开始怎么做上海响应式网页建设
  • 网站备案 seo免费二维码制作网站
  • 删除网站备案网站建设湖南岚鸿建设
  • 做vlogger的网站有哪些长沙网站排名技巧
  • 媒体营销平台商品seo关键词优化
  • 芜湖先锋网站两学一做wordpress菜单顶部
  • 网站策划怎么样一级域名网站如何申请
  • 烟台高端网站开发网站开发哪个公司好
  • 广州网站定制开发方案南宁网站 制作
  • php做网站需要后台吗郑州建网站十大
  • 网站跳出率是什么意思百度服务
  • 建站 discuz开发者导航
  • 有哪些网站可以做毕业设计外贸网站发外链
  • 如何使用网站模板计算机培训班有用吗
  • 本地宁波网站建设电子商务网站建设工具都有那些
  • 网站建设的基本目标免费 wordpress企业主题
  • 专业网站建设微信商城开发规划馆网站建设
  • 网站建设公司沈阳西安建设工程信息交易中心官网
  • 青海住房和城乡建设部网站wordpress php7.3
  • 网站后台重置密码怎么做360网站怎么做网址链接
  • 广告网站建设及推广网站建设怎样推广