1.列舉的實現
const (
freetime = 5
bettime = 9
opentime = 7
)
比如 定義位元組大小的列舉
const(
b = 1<<(10*iota) //1
kb //1024
mb //1024*1024
gb //1024*1024*1024
)
2.繼承
type father struct
var son struct
son.id
son.name
son.tuiduan
3.如何將乙個固定陣列轉換成切片.
var arry [32]byte
func changetoslice(btslice byte)
如果直接將變數arry作為引數傳入 changetoslice(arry), 則會提示 型別不匹配的情況.
解決方案:
changetoslice(arry[:])
4.如何高效插入乙個元素
//插入某元素
func copyinsert(slice inte***ce{}, pos int, value inte***ce{}) inte***ce{}
使用
var playerlist uint64 //玩家列表
playerlist = copyinsert(playerlist, len(playerlist), userid).(uint64) //這裡請強轉為自身型別
5.快速實現 基礎型別 的陣列成員 排序.
以 byte為例子
import "sort"
type playercards byte
//len()
func (s playercards) len() int
//less():由低到高排序
func (s playercards) less(i, j int) bool
//swap()
func (s playercards) swap(i, j int)
//呼叫
func sortcards(cards byte) byte
6.如何寫乙個單例.
// 管理類
type playermanger struct
// 單例實現
var once sync.once
var manger *playermanger = nil
func getplayermanger() *playermanger = make(map[uint64]*player)
})return manger
}
7.指標與 非指標的 成員函式呼叫
func (bc *blockchain)senddata(data string)
func (bc blockchain)senddatax(data string)
看下這兩個函式有什麼不同. 答案是肯定的,這兩個函式是相同的,只是可呼叫型別不同.
例項乙個指標
ptrblock := &blockchain{}
ptrblock.senddata(" 我是指標" ) //此時block屬性 == " 我是指標"
ptrblock.senddatax(" ***x" ) //此時block屬性 == " 我是指標" 無法改變
資料是無法新增到 bc的block陣列的當中的,因為很簡單. bc不是指標型別. 所以記得給相應的函式 乙個 靠譜的物件.
正解: 值傳遞無法改變成員內部資料,應該使用指標傳遞.
8 有快取chanel 和 無快取chanel的區別:
就一句話: 無快取chanel 要求chanel的讀取 和寫入 必須是併發執行.
有快取時,一定是先寫入,再讀取. 無論是讀取 還是寫入.一旦快取滿了,就會阻塞. 等待另一邊拿走資料,或寫入新的資料. 如果快取未滿的時候,則不會阻塞.
例子
func readchan(ch chan int)
func writechan(ch chan int)
func main()
}
//持續更新.. SlickEdit 一些使用技巧
slickedit 使用了幾天以後,發現不僅僅是自動提示,瀏覽,它提供的編輯功能也非常強大。如果說 sourceinsight 和 slickedit 在瀏覽 上面各有所長,那麼編輯這方面 se 和 si 就不是乙個級別了。下面是我知道的一些使用技巧,老鳥就不用看了,哈哈.1.如果發現路徑的 顯示成...
mysql 一些使用技巧
1.忘記root密碼,解決辦法 usr local mysql share mysql mysql.server stop mysql4 usr local mysql support files mysql.server stop mysql5 usr local mysql bin mysqld...
latex一些使用技巧
1.如何使連續的參考文獻能夠中間用破折號連起來?比如 6,7,8,9 變成 6 9 方法 在文件開始前加上下面的語句命令 usepackage numbers,sort compress 不但可以壓縮參考文獻標號,還可以進行排序,即無論正文裡面的順序怎樣,顯示出來都是先後順序。在elsevier模板...