亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我不能使用 net.go 中的 conn.ok()?

為什么我不能使用 net.go 中的 conn.ok()?

Go
搖曳的薔薇 2023-05-22 16:58:18
我是從 Python 背景來到 Golang 的,我正在努力思考各種新概念。我遇到的一件事是 net.go 中的這個函數:func (c *conn) ok() bool { return c != nil && c.fd != nil }該函數被多個 net.go 方法調用,例如 conn.Read:// Read implements the Conn Read method.func (c *conn) Read(b []byte) (int, error) {     if !c.ok() {            return 0, syscall.EINVAL}我試圖了解如何ok()在 conn 上調用該方法,盡管它ok()似乎不是conn 的接口。當然,我似乎無法ok()從我的客戶端代碼中調用:func main() {conn, err := net.Dial("tcp", "www.reddit.com:80")if err != nil {    os.Exit(-1)}fmt.Println(&conn.ok())}輸出:./server.go:14:22: conn.ok undefined (type net.Conn has no field or method ok)任何指針贊賞...
查看完整描述

3 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

Go 不使用 public/private 關鍵字來實現標識符的可見性。如果首字母為大寫字母,則標識為exported(public);否則它不是:

  • 大寫首字母:名稱對包的客戶可見

  • 否則:名稱(或 _Name)對包的客戶不可見


查看完整回答
反對 回復 2023-05-22
?
森林海

TA貢獻2011條經驗 獲得超2個贊

來自 Go 文檔:

可以導出標識符以允許從另一個包訪問它。如果標識符名稱的第一個字符是 Unicode 大寫字母,則標識符被導出

所以,ok 函數沒有導出,你不能在 net 包之外訪問它。


查看完整回答
反對 回復 2023-05-22
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

在 net.Conn 中沒有像 ok 這樣的字段或方法表明錯誤是正確的。當您嘗試讀取和寫入 conn 時,您會得到錯誤和讀取或寫入連接的字節數。



查看完整回答
反對 回復 2023-05-22
  • 3 回答
  • 0 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號