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

在Golang中实现返回相似数据的字符串类型结果的技术求助

实现包含指定字符串的相似数据查询

首先,你需要导入strings包来使用Contains(判断子串是否存在)和Join(将匹配结果拼接成字符串)功能。下面是修改后的完整实现:

package main

import (
    "fmt"
    "strings"
)

func FindSimilarData(input string, data ...string) string {
    // 用切片收集所有匹配的结果
    matches := []string{}
    for _, d := range data {
        // 判断当前字符串是否包含输入的子串
        if strings.Contains(d, input) {
            matches = append(matches, d)
        }
    }
    // 将匹配的切片用逗号加空格拼接成单个字符串返回
    return strings.Join(matches, ", ")
}

func main() {
    fmt.Println(FindSimilarData("iphone", "laptop", "iphone 13", "iphone 12", "iphone 12 pro"))
    // 输出: iphone 13, iphone 12, iphone 12 pro
}

关键说明:

  • strings.Contains(d, input):检查字符串d是否包含input作为子串,返回布尔值,以此判断是否属于相似数据
  • 用切片matches收集所有符合条件的字符串,避免直接字符串拼接的性能问题(频繁拼接会产生大量临时对象)
  • strings.Join(matches, ", "):将切片中的所有元素拼接成一个以, 分隔的字符串,作为最终返回结果

如果需要其他返回格式(比如换行分隔、分号分隔),只需要修改Join的第二个参数即可;如果需要返回切片而非字符串,直接返回matches即可。

内容的提问来源于stack exchange,提问作者zacharyy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:40:27