老虞要學GoLang-代碼規範

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

      開始一項新語言前需要先瞭解該語言的文法(如果你有其他語言的編程知識的話),開始學習前,我們一起瞭解下Go的格式。

      如果大家都統一編碼風格,那麼在維護他人代碼時就能帶來便利。同時我們在提交代碼前執行一次fmt命令,以便提交統一風格的代碼。

      

注釋

Go支援C語言風格的“//”塊注釋,也支援C++風格的行注釋,同時可使用/**/進行包的 注釋. 我們看string包的原始碼,使用//注釋了包,方法以及行。我們需要養成好的習慣,盡量去多寫些注釋,這樣不但有利於自己以後的回顧,已給他人閱讀你的代碼提供了方便,當然Go下的原始碼使用Go命令能夠產生文檔,而文檔的描述內容來源自注釋,在編碼階段就同步書寫注釋,而不要在整理代碼時書寫注釋(此時的思維沒有編碼時清晰,補救中總容易丟失些東西)。

1// Copyright 2009 The Go Authors. All rights reserved.2// Use of this source code is Governed by a BSD-style3// license that can be found in the LICENSE file.45// Package strings implements simple functions to manipulate strings.6 package strings78 import (9 "unicode"10 "utf8"11 )1213// explode splits s into an array of UTF-8 sequences, one per Unicode character (still strings) up to a maximum of n (n < 0 means no limit).14// Invalid UTF-8 sequences become correct encodings of U+FFF8.15 func explode(s string, n int) []string {16 if n == 0 {17 return nil18 }19 l := utf8.RuneCountInString(s)20 if n <= 0 || n > l {21 n = l22 }23 a := make([]string, n)24 var size, rune int25 i, cur := 0, 026 for ; i+1 < n; i++ {27 rune, size = utf8.DecodeRuneInString(s[cur:])28 a[i] = string(rune)29 cur += size30 }31// add the rest, if there is any32 if cur < len(s) {33 a[i] = s[cur:]34 }35 return a36 }




命名

在Go中名稱不但具有表達含義的功能,同時也具有約束使用的特點。如果一個函數的名稱是小寫則表示該函數不能在其他包中使用。

    1. 命名必須使用駱駝命名法,而不能使用底線法。

    2. 任何需要對外暴露的名字必須大寫字母開頭,不需要暴露在包外的名字必須以小寫字母開頭。

    3. 介面的命令,按照慣例,如果介面只有一個方法,則該介面命名為方法名成加上”ER“尾碼。

分號

Go和C語言一樣使用“;”來結束一個語句,但不一樣的是,在Go中由編譯器去處理“;”,所以你必須在編寫代碼是省略“;”。當然也有例外,for迴圈(使用;將初始部分、條件部分和遍曆元素區分),一行中有多個語句,多指派陳述式等。

需要注意,不能將控制語句(for,if else,switch,select)的左括弧另起一行。如

//錯誤的方式

if(1==2)

{

fmt.Println("God!")

}


//正確的書寫

if(1==2) {

fmt.Println("God!")

}


學到新的知識後,再補充。

 ---------2013-04-10 補充---------------------

  Go語言編程規範:

      官方地址:http://golang.org/doc/effective_go.html    (牆了)

      中文翻譯:http://zh-golang.appsp0t.com/ref/spec?lang=en

------------------end------------------------------

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.