第2章
the go programming language
程 序 結 構
與其他程式語言一樣,go語言中的大程式都從小的基本元件構建而來:變數儲存值;簡單表示式通過加和減等操作合併成大的;基本型別通過陣列和結構體進行聚合;表示式通過if和for等控制語句來決定執行順序;語句被組織成函式用於隔離和復用;函式被組織成原始檔和包。
上面這些內容中的大部分已在前一章介紹過,本章將更細緻地討論go程式中的基本結構元素。示例程式有意進行了簡化,這有助於聚焦於語言本身而不是複雜的演算法和資料結構。
2.1 名稱
go中函式、變數、常量、型別、語句標籤和包的名稱遵循乙個簡單的規則:名稱的開頭是乙個字母(unicode中的字元即可)或下劃線,後面可以跟任意數量的字元、數字和下劃線,並區分大小寫。如heapsort和heapsort是不同的名稱。
go有25個像if和switch這樣的關鍵字,只能用在語法允許的地方,它們不能作為名稱:
另外,還有三十幾個內建的預宣告的常量、型別和函式:
這些名稱不是預留的,可以在宣告中使用它們。我們將在很多地方看到對其中的名稱進行重宣告,但是要知道這有衝突的風險。
如果乙個實體在函式中宣告,它只在函式區域性有效。如果宣告在函式外,它將對包裡面的所有原始檔可見。實體第乙個字母的大小寫決定其可見性是否跨包。如果名稱以大寫字母的開頭,它是匯出的,意味著它對包外是可見和可訪問的,可以被自己包之外的其他程式所引用,像fmt包中的printf。包名本身總是由小寫字母組成。
名稱本身沒有長度限制,但是習慣以及go的程式設計風格傾向於使用短名稱,特別是作用域較小的區域性變數,你更喜歡看到乙個變數叫i而不是theloopindex。通常,名稱的作用域越大,就使用越長且更有意義的名稱。
TNS 03505 名稱無法解析
tns 03505 名稱無法解析 oracle db01 admin tnsping pri tns ping utility for linux version 11.2.0.4.0 production on 15 jun 2015 21 57 52 used parameter files t...
關於常量統一名稱的建議
在程式開發中,往往要用到一些固定的常量,這個時候就會定義常量值,以達到公用的效果。這是一種很好的開發方式,但是由於個人風格不同,在定義常量名時往往各自為政,風格各異。如定義查詢字段常量名 empid時,有的人定義為 publicstaticfinalstring empid empid 有的人定義為...
ora 00955 名稱已由現有物件使用
今天在啟用乙個約束的 命令如下 時候報錯 ora 00955 名稱已由現有物件使用 alter table us aoi token 0113 enable constraint pk us aoi token 2 發現原來該錶上有乙個同名 索引,將該索引刪掉之後,就能正常enable 該約束了 當...