gpt4 book ai didi

go - 如何在 Go 中编写接受 string 和 int64 类型的函数?

转载 作者:IT王子 更新时间:2023-10-29 01:54:50 26 4
gpt4 key购买 nike

我有这样的功能

func GetMessage(id string, by string) error {
// mysql query goes here
}

我有 message_id 是字符串,id 是主键。

我愿意接受两种类型的 id 参数。

我试过这样

if (by == "id") {
int_id, err := strconv.ParseInt(id, 10, 64)
if err != nil {
panic(err)
}
id = int_id
}

但是我遇到了这样的错误

cannot use int_id (type int64) as type string in assignment

谁能帮帮我?

谢谢

最佳答案

像这个工作示例一样使用接口(interface){}:

package main

import "fmt"
import "errors"

func GetMessage(id interface{}) error {
//fmt.Printf("v:%v\tT: %[1]T \n", id)
switch v := id.(type) {
case string:
fmt.Println("Hello " + v)
case int64:
fmt.Println(v + 101)
default:
//panic("Unknown type: id.")
return errors.New("Unknown type: id.")
}
return nil
}

func main() {
message_id := "World"
id := int64(101)
GetMessage(message_id)
GetMessage(id)
}

输出:

Hello World
202

关于go - 如何在 Go 中编写接受 string 和 int64 类型的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38801540/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com