MST

星途 面试题库

面试题:Go中如何组合两个Channel实现数据传递

在Go语言中,假设有两个Channel,一个 `ch1` 发送整数,另一个 `ch2` 发送字符串。请编写代码,将 `ch1` 接收到的整数转换为字符串(例如将整数5转换为字符串 "5"),然后通过 `ch2` 发送出去,同时要妥善处理可能出现的关闭Channel的情况。
43.1万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
)

func main() {
    ch1 := make(chan int)
    ch2 := make(chan string)

    go func() {
        for {
            num, ok := <-ch1
            if!ok {
                close(ch2)
                return
            }
            str := fmt.Sprintf("%d", num)
            ch2 <- str
        }
    }()

    // 模拟发送数据到ch1
    ch1 <- 5
    ch1 <- 10
    close(ch1)

    // 从ch2接收数据
    for str := range ch2 {
        fmt.Println(str)
    }
}