Go语言中文网 为您找到相关结果 12

golang的指针receiver和非指针receiver的区别?

golang的指针receiver和非指针receiver的区别? 最大的区别应该是指针传递的是对像的引用,这样在方法里操作的时候可以动态修改对像的属性值。 非指针传递的是对像的拷贝。 这个应该和PHP的引用的用法差不多。 package main import ( "fmt" ) type Person struct { Name string Age int } func (p *Person) SayHi1() { p.Name = "leon1" } func (p Person) SayHi2() { p.Name = "leon2" } func main() { p1 := &Person{Name: "test", Age: 10} fmt.Println("name1 : ...阅读全文

博文 2014-10-16 15:45 leonpengweicn

go语言学习笔记(第3章)—面向对象编程

一个典型的类型系统包括: 基础类型: byte, int, bool, float等 复合类型:数组,结构体,指针 可以指向任意对象的类型(Any类型) 值语义和引用语义 面向对象,即所有具备面向对象特征的类型 接口 在GO语言中可以为任意类型(包括内置类型)添加相应的方法 上面的例子中我们定义了一个新类型 Integer ,Integer和int没有本质区别,只是为内置的int增加了一个方法Less(),可以让整型像一个普通的类一样使用了。 在GO语言中没有隐藏的this指针 1) 方法施加的目标显示传递,没有被隐藏起来 2) 方法施加的目标不需要非得是指针,也不用非得叫this GO语言和C语言一样,类型都是基于值传递的,要想改变变量的值,只能在函数中传递指针。 1. 类型系统 1.1....阅读全文

博文 2015-10-27 14:51 mickelfeng