在Golang中,统一以驼峰式命名变量,首字母大写为公有变量(public),小写则为私有变量(private)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
package demo

type A struct {
  C string
  d string
}

type b struct {
  C string
  d string
}

func (a *A) getC() string {
    return a.C
}

func (a *A) GetD() string {
    return a.d
}

如上所示为demo.go,在demo包中有两个struct:A和b。其成员变量均为C和d。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
package main

import "${project_path}/demo"

func main() {
  a := demo.A{C: "C", d: "d"} // init struct A
  b := demo.b{C: "C", d: "d"} // error

  println(a.C) // output: C
  println(a.d) // error

  println(a.getC()) // error
  println(a.GetD()) // output: d
}

由于struct b为私有类,只能在所处package中调用,在其他package中无法调用其他package中的私有成员。同理,在struct中的成员变量只有公有变量才能在struct外部调用。struct中的函数与成员变量同理。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
class A {
  public String C;
  private String d;
  
  private String getC() {
    return C;
  }
  
  public String GetD() {
    return d;
  }
}

通过Java语言中的public以及private修饰器可以更快的理解Golang中通过驼峰式命名法管理成员的public和private属性。