golang - 调用函数的时候加不加* 有什么区别?

查看:201
本文介绍了golang - 调用函数的时候加不加* 有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

package main

import "flag"
import "fmt"

func main() {

    test := "shit"
    var fuck *string

    // 这么调用 test就永远是默认值
    test = *flag.String("a", "default", "test flag args")

    // 这么调用 fuck就会变成-a 参数的值
    fuck = flag.String("a", "default", "test flag args")

    //
    fmt.Println(*fuck)
    fmt.Println(test)


}

调用函数的时候 这个*有什么区别?
为啥行为会不一样? *不就是个取值符么?

解决方案

我自己的问题
值在flag.parse() 时候改变,所以*提前取值了,是不会变的

这篇关于golang - 调用函数的时候加不加* 有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆