You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Golang函数中循环生成输出并返回结果的解决方案咨询

解决方案

问题分析

你的代码存在两个核心问题:

  • 函数声明为无返回值类型,却尝试返回变量output,会触发编译错误
  • 循环内的output是局部变量,无法在循环外访问,也未存入容器供后续返回

实现方案

根据需求,提供两种实用实现方式:

1. 返回格式化字符串切片(推荐,灵活性更高)

修改函数返回值为[]string,在循环前声明切片,每次循环将格式化后的字符串追加到切片中,最后返回整个切片:

import (
    "encoding/json"
    "fmt"
    "io"
    "log"
)

func Search_num(mobilenumber string) []string {
    // .......get request.......

    body, err := io.ReadAll(search_res.Body)
    if err != nil {
        log.Fatalln(err)
    }
    defer search_res.Body.Close()

    var jsonbody Response

    if err := json.Unmarshal(body, &jsonbody); err != nil {
        log.Fatalln(err)
    }

    // 声明存储结果的切片
    var outputs []string
    for _, p := range jsonbody.Data {
        output := fmt.Sprintf("Name : %s\nMobile : %s\nEmail : %s\nCarrier : %s\nCity : %s\n", 
            p.Name, p.Phone.Mobile, p.INTaddress.Email, p.Phone.Carrier, p.Address.City)
        // 将格式化后的字符串追加到切片
        outputs = append(outputs, output)
    }

    return outputs
}

2. 返回拼接后的单个格式化字符串

如果需要将所有结果合并为一个字符串返回,可以使用strings.Join将切片内容拼接:

import (
    "encoding/json"
    "fmt"
    "io"
    "log"
    "strings"
)

func Search_num(mobilenumber string) string {
    // .......get request.......

    body, err := io.ReadAll(search_res.Body)
    if err != nil {
        log.Fatalln(err)
    }
    defer search_res.Body.Close()

    var jsonbody Response

    if err := json.Unmarshal(body, &jsonbody); err != nil {
        log.Fatalln(err)
    }

    var outputs []string
    for _, p := range jsonbody.Data {
        output := fmt.Sprintf("Name : %s\nMobile : %s\nEmail : %s\nCarrier : %s\nCity : %s\n", 
            p.Name, p.Phone.Mobile, p.INTaddress.Email, p.Phone.Carrier, p.Address.City)
        outputs = append(outputs, output)
    }

    // 用空字符串拼接所有结果,也可自定义分隔符
    return strings.Join(outputs, "")
}

调用示例

以切片返回版本为例,其他函数可这样调用:

results := Search_num("1234567890")
for _, res := range results {
    fmt.Println(res)
}

内容的提问来源于stack exchange,提问作者Vinay Kumar Rasala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 02:15:35