首页 > 其他分享 >go的表达式调用编译器不会进行自动转换 未完成

go的表达式调用编译器不会进行自动转换 未完成

时间:2023-03-04 23:56:08浏览次数:36  
标签:TestPointer func 编译器 TestValue go Data 表达式

package main

import (
	"fmt"
)

type T struct {
	a int
}

func (t T) Get() int {
	return t.a
}
func (t *T) Set(i int) {
	t.a = i
}

//表达式`T.Get`和`(*T).Set`被称为方法表达式,
//需要注意的是在方法表达式中编译器不会做自动转换。
//值调用会自动转换,表达式调用则不会,例如:
type Data struct{}

func (d Data) TestValue() {
	fmt.Println("TestValue")
}

func (d *Data) TestPointer() {
	fmt.Println("TestPointer")
}

//声明一个类型变量a
var a Data = struct{}{}
var  Data1 = struct{}

func main() {
	//表达式调用编译器不会进行自动转换
	a.TestValue()
	//Data1.TestValue()
	//Data.TestValue(&a)
	(*Data).TestPointer(&a)
	//Data.TestPointer(&a) //type Data has no method TestPointer
	//值调用编译器会进行自动转换

	//y: = (&a).TestValue //编译器帮助转换a.TestValue
	//g: = a.TestPointer  //会转换为(&a).TestPointer
	//fmt.Println(y,g)
}

标签:TestPointer,func,编译器,TestValue,go,Data,表达式
From: https://www.cnblogs.com/heris/p/17179543.html

相关文章

  • Django源码-startproject
    Django源码-startprojectDjango的所有命令都位于django/django/core/management/commands/目录下一命令目录django-adminstartprojectproject_name这个命令在源码里......
  • Django源码-测试和调试环境搭建
    Django源码-测试和调试环境搭建一创建虚拟环境mkvirtualenv-ppython3.8.10DjangoSource二安装Djangopipinstalldjango==4.0b1三下载源码方法一gitclon......
  • go的timeDuration
    packagemainimport( "fmt" "time")//https://blog.csdn.net/qq_35655945/article/details/82706022typeDurationint64const( NanosecondDuration=1 Mi......
  • go的sync,未完成timeDuration
    packagemainimport( "fmt" "sync" "time")varproducer=func(wg*sync.WaitGroup,lsync.Locker){ deferwg.Done() fori:=5;i>0;i--{ l.Lock()......
  • Paper Reading: How good are query optimizers, really?
    Title“HowGoodAreQueryOptimizers,Really?”(Leis等,2015,p.204)「查询优化器到底有多好?大概就是通过比较查询优化器的有无时,查询执行的性能,来得到查询优化......
  • django终章篇
    从django终章篇1.Cookie和Session1.1基于cookie的登录cookie设置在响应头上,获取在请求头上设置cookie时要先获得一个响应对象(HttpResponse),然后在这个响应对象上......
  • Golang HTTP编程及源码解析-请求/响应处理
    1.HTTP协议HTTP协议是HyperTextTransferProtocol(超文本传输协议)的缩写,基于TCP/IP通信协议来传递数据(HTML文件、图片文件、查询结果等)。HTTP是无连接的:无连接的......
  • django基础部分
    django基础部分1.django的安装与执行django安装pip3installdjango==1.11.11利用命令行创建django项目django-adminstartproject项目名利用命令行创建app......
  • django进阶
    django进阶一.Django模板系统1.常用语法只需要记两种特殊符号:{{}}和{%%}变量相关的用{{}},逻辑相关的用{%%}。1.1.变量在Django的模板语言中按此语法使用:{{......
  • 5.JavaScript提供的正则表达式API、可以使用正则表达式解决常见问题(邮箱校验、URL解析
    JavaScript提供的正则表达式API、可以使用正则表达式解决常见问题(邮箱校验、URL解析、去重等)js正则常用API1.五个常用方法①testreg.test(str);//返回是否包含正则......