0
Q
Go語言的副作用
A
回答
2
在C中,副作用用於有效返回多個值。
在圍棋,返回多個值是內置的功能規格:
func f(a int) (int, int) {
if a > 0 {
return a, 1
}
return 0,0
}
通過返回多個值,你可以影響任何你喜歡的功能之外,作爲函數調用的結果。
3
ReadByte
函數修改緩衝區的狀態。
package main
import "fmt"
type Buffer struct {
b []byte
}
func NewBuffer(b []byte) *Buffer {
return &Buffer{b}
}
func (buf *Buffer) ReadByte() (b byte, eof bool) {
if len(buf.b) <= 0 {
return 0, true
}
b = buf.b[0]
buf.b = buf.b[1:]
return b, false
}
func main() {
buf := NewBuffer([]byte{1, 2, 3, 4, 5})
for b, eof := buf.ReadByte(); !eof; b, eof = buf.ReadByte() {
fmt.Print(b)
}
fmt.Println()
}
Output: 12345
相關問題
- 1. 副作用和深奧的語言
- 2. 使用go語言與gitolite
- 3. Go語言中的墳墓
- 4. Go語言的應用領域
- 5. 返回菜單語言GO
- 6. 使用什麼語言編寫Go編程語言?
- 7. 使用build GO語言依賴關係
- 8. For循環使用Go編程語言
- 9. Go語言中runtime-gdb.py的作用是什麼?
- 10. Mach語言與Go語言的頻道如何相互關聯?
- 11. GO編程語言的安裝環境
- 12. AndroidStudio的Google Go語言插件
- 13. Go語言的觀察者模式
- 14. Google Go語言中的併發例程
- 15. Google Go語言中的異常處理
- 16. 如何理解go語言中的`defer`?
- 17. Go語言的線性迴歸庫
- 18. go語言中的遞歸函數
- 19. Go語言查詢列參考不起作用
- 20. 捕捉帶有副作用的斷言()
- 21. Go編程語言代碼錯誤
- 22. 如何在Windows中運行Go語言?
- 23. Go語言exec.Command execute方法失敗
- 24. 獲取在Go(語言)從片陣列
- 25. Go語言:運行「go run」時更改生成文件夾
- 26. 如何用Go語言的cgo編譯Cuda源碼?
- 27. 如何用go語言重寫嵌套包中的變量?
- 28. 用於Go編程語言的PostgreSQL驅動程序
- 29. Go語言time.Parse()用於沒有時區的時間戳
- 30. UPDATE SQL命令不適用於GO語言
我認爲你需要更具體地瞭解你的想法。 Go不是一種功能性語言。沒有什麼能夠阻止你編寫帶有副作用的函數。例如,包os,fmt和net中的許多函數都有副作用。 – 2011-01-29 21:32:54