刚入 golang,最近在写一个 http server。
我这里有一个全局的字符串类型的变量,它是线程安全的,所以我给了它一个互斥锁,同时新增了 Get/Set 函数来操作它,当然这两个函数也是线程安全的。为了防止后来者误用,我希望这个变量不要被直接使用,或者不要费事像下面这样用,
ProjectNameMutex.Lock()
defer ProjectNameMutex.Unlock()
ProjectName = name
我更希望他直接调用我提供的线程安全函数 GetProjectName()
,那么这个变量我如何“隐藏”呢?
我在注释里对这个变量做了说明,但我觉得这不够,需要在设计上给一个方法,希望有了解的大兄弟指点一下。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…