Go语言变态用法

Go语言变态用法,第1张

概述今天为了提交notepad++高亮的BUG, 写了一个变态代码. BUG地址: https://code.google.com/p/go/issues/detail?id=5798 下面是稍微调整后的代码(http://play.golang.org/p/RYq82b7BN2): package mainimport "fmt"type int bytefunc (p int) Foo

今天为了提交notepad++高亮的BUG,写了一个变态代码.

BUG地址: https://code.google.com/p/go/issues/detail?id=5798

下面是稍微调整后的代码(http://play.golang.org/p/RYq82b7BN2):

package mainimport "fmt"type int bytefunc (p int) Foo() {	fmt.Printf("int.Foo: %v\n",p)}func int_Foo(x byte) {	f1 := int.Foo	f1(int(x))	f2 := int(x).Foo	f2()}func main() {	int_Foo(32)}

代码输出:

int.Foo: 32int.Foo: 32

主要有以下几个特性:

内置类型 int 被重新定义,这里是被定义为类型,其实也可以被定义为变量名 新类型 int 的方法表达式(method Expressions): int.Foo 新类型 int 的方法值(method Expressions): int(x).Foo 不能被递归定义为自身类型,比如 type int int. 会导致无效递归类型错误: "invalID recursive type int". 总结

以上是内存溢出为你收集整理的Go语言变态用法全部内容,希望文章能够帮你解决Go语言变态用法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1292761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存