Странности при компиляции программы с каналами

У меня есть такой код

package main

import (
    "fmt"
    "time"
)

func main(){
    ch := make(chan int)
    go waitOneDay(ch)
    go receive(ch)
    time.Sleep(time.Hour * 25)
}

func send(ch chan int) {
    ch <- 1
    fmt.Println("Sending value to channel complete")
}

func waitOneDay(ch chan int) {
    time.Sleep(24 * time.Hour)
    сh <- 1
}

func receive(ch chan int) {
    time.Sleep(time.Second * 1)
    fmt.Println("Timeout finished")
    _ = <-ch
    return
}

Когда я компилирую этот код, то получаю

./prog.go:26:2: undefined: сh

То есть не распознан канал ch внутри функции waitOneDay.

Если же закоментировать функцию waitOneDay, и заменить ее на send функцию в main,

package main

import (
    "fmt"
    "time"
)

func main(){
    ch := make(chan int)
    go send(ch)
    go receive(ch)
    time.Sleep(time.Hour * 25)
}

func send(ch chan int) {
    ch <- 1
    fmt.Println("Sending value to channel complete")
}

//func waitOneDay(ch chan int) {
//  time.Sleep(24 * time.Hour)
//  сh <- 1
//}

func receive(ch chan int) {
    time.Sleep(time.Second * 1)
    fmt.Println("Timeout finished")
    _ = <-ch
    return
}

то код работает как надо:

Timeout finished
Sending value to channel complete

Как мне заставить функцию waitOneDay работать? Ссылка на go playground https://play.golang.com/p/OUHusxPiObA


Ответы (0 шт):