Avatar
1
Nguyễn Hiếu Beginner
[BadQuestionBecauseCodeInImage]Channel trong Go Lang
Cho em hỏi, mình gửi qua 2 channel, mà tại sao select nó có mấy giá trị 0 vậy ạ, em thấy có gọi hàm close cho mỗi channel sau khi gửi xong rồi mà
  • Answer
question
Remain: 5
3 Answers
Avatar
ducnt114 Beginner
ducnt114 Beginner
em gửi full code chương trình lên đây để xem cho dễ nhé, anh nhìn hình thì thấy thiếu đoạn khai báo channel.
  • 0
  • Reply
dạ em gửi ở phía dưới á anh  –  Nguyễn Hiếu 1657245246000
Avatar
Dạ đạ đây anh ơi
  • 0
  • Reply
cái này không liên quan gì đến ảnh ở đầu bài đúng ko em? anh nhìn thì thấy nó khác hoàn toàn.  –  ducnt114 1657245478000
nó như nhau ấy ạ, em coi video code theo ấy anh, cái trên em cap từ video, cái dưới em code lại, em có sleep trong case để nó in ra chậm lại thôi ạ  –  Nguyễn Hiếu 1657245723000
Khi channel bị close thì chỉ không gửi được message mới vào channel thôi, còn vẫn lấy ra được, và giá trị trả về sẽ là zero value theo data type của channel, channel trong bài là chan int nên zero value của int là 0, nếu chan string thì sẽ trả về empty string.

Nếu muốn check channel close chưa khi nhận message thì em có thể dùng cú pháp:

msg, ok := <- c
if !ok {
// channel closed
} else {
// not closed
fmt.Println(msg)
}
 –  ducnt114 1657246195000
dạ tkss anh

em có thể hỏi tiếp về chỗ pipeline fade-in dae-out kh ạ

 –  Nguyễn Hiếu 1657246785000
Avatar
ducnt114 Beginner
ducnt114 Beginner
Em post tiếp câu hỏi thành comment mới cũng được, paste text cho dễ theo dõi, để trong thẻ <pre> ấy
  • 0
  • Reply