<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 定義 類的定義是依托結構體來的,比如 ``` type Person struct { name string age uint male bool } ``` ## 初始化 go不支持構造函數,析構函數,可以定義NewXXX這樣的全局函數來實現類的初始化 ``` func NewPerson(name string, age uint, male bool) *Person { return &Person{name, age, male} } ``` ## 成員方法 要為 Go 類添加成員方法,需要在`func`和方法名之間添加方法所屬的類型聲明(有的地方將其稱之為`接收者聲明`) **值方法** ``` func (p Person) GetName() string { return p.name } ``` Go 語言面向對象編程不像 PHP、Java 那樣支持隱式的`this`指針,所有的東西都是顯式聲明的 若要修改類的屬性,則類型聲明需要設置成指針類型 **指針方法** ``` func (p *Person) SetName(name string) { p.name = name } ``` ## 字符串格式打印類的實例 PHP、Java 支持默認調用類的`toString`方法以字符串格式打印類的實例,Go 語言也有類似的機制,只不過這個方法名是`String` ``` func (p *Person) String() string { return fmt.Sprintf("{name: %s, age: %d, male: %t}", p.name, p.age, p.male) } ``` 直接打印類實例,無需調用`String`方法 同一個方法集合中的方法不能出現重名,并且,如果它們所屬的是一個結構體類型,那么它們的名稱與該類型中任何字段的名稱也不能重復。 ## 基本數據類型添加成員方法 在 Go 語言中,你可以給任意類型(包括基本類型,但不包括指針類型)添加成員方法,但是如果是基本類型的話,需要借助`type`關鍵字對類型進行再定義 ``` type Integer int func (a Integer) Equal(b Integer) bool { return a == b } ``` ## 繼承和方法重構 通過組合來實現類的繼承和方法重構 ``` type Dog struct { Animal } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看