經常以書面形式提出申請,我發現自己可以選擇使用[]byte
或string
。除了[]byte
明顯的可變性,我該如何決定使用哪一個?何時在Go中使用[]字節或字符串?
我有幾個使用案例的例子:
- 函數返回一個新的
[]byte
。由於切片容量是固定的,有什麼理由不返回字符串? []byte
默認情況下打印效果不如string
,所以我經常發現自己正在以string
作爲記錄目的。它應該始終是string
?- 當預先計劃
[]byte
時,總是會創建一個新的基礎數組。如果前置數據不變,爲什麼這不是string
?
這聽起來像取決於您的使用。如果你打算和他們一起做string-y操作,那麼把它叫做'string'。如果只是不透明的數據被混洗,爲什麼不''[]字節'?這涉及到用例。 – Ashe
如果您需要處理單個字符而不是UTF-8編碼字節流,則先將其轉換爲符文(32位整數IIRC)。 –
然後還有'[]符文',這是最好的代表一個可變的字符串 – newacct