zoukankan      html  css  js  c++  java
  • 普通变量和指针变量

    1 方法使用指针变量时,会直接修改调用该方法的对象,而用普通变量则不会

    //Person 结构体
    type Person struct {
        name string
        age  int8
    }
    //NewPerson 构造函数
    func NewPerson(name string, age int8) *Person {
        return &Person{
            name: name,
            age:  age,
        }
    }
    //Dream Person做梦的方法
    func (p Person) Dream() {
        fmt.Printf("%s的梦想是学好Go语言!
    ", p.name)
    }
    // p为普通变量时,进去之后是一个新的对象,即地址和调用这个方法的对象是两个地址,所以修改值后不会改变原对象
    // p为指针变量时,修改值是是直接在原对象上修改的,
    func (p Person) SetAge(age int8){
        p.age = age
        fmt.Println(p)
        println(&p)
        // 若p是个指针变量,则用println输出的时候是个地址
        // 若p是个普通变量,无法用println输出,因为里面是具体的Person对象,要用fmt.Println()才能输出,
        //println(p)
    }
    func main() {
        p1 := NewPerson("测试", 20)
        println(p1)
        p1.SetAge(50)
    
    }
  • 相关阅读:
    0719PHP基础:PDO
    0717PHP基础:面向对象
    0716PHP基础:面向对象
    0715JS基础:ajax
    0715PHP练习:文件操作
    0715PHP基础:文件操作
    0629正则表达式:基础
    0628正则表达式:练习
    zTree简单使用和代码结构
    servlet
  • 原文地址:https://www.cnblogs.com/xxswkl/p/13948496.html
Copyright © 2011-2022 走看看