V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  kaf  ›  全部回复第 4 页 / 共 5 页
回复总数  96
1  2  3  4  5  
@agzou 之前用的 kratos 框架( go 实现的一个微服务框架),对外提供 grpc 和 http ,支持服务发现调用,你可以了解一下,feign 本身还是 http 调用,有 http 接口并且支持服务名发现应该是能实现跨语言调用的
有 grpc 为啥还要 feign
2023-01-28 11:54:32 +08:00
回复了 jorneyr 创建的主题 程序员 Go 的范型怎么把 Response[指定类型] 转换为 Response[any]
@jorneyr 可以看 go 实现 Java 的 stream 的 map 方法
// Map manipulates a slice and transforms it to a slice of another type.
// Play: https://go.dev/play/p/OkPcYAhBo0D
func Map[T any, R any](collection []T, iteratee func(item T, index int) R) []R {
result := make([]R, len(collection))

for i, item := range collection {
result[i] = iteratee(item, i)
}

return result
}
2023-01-28 11:51:38 +08:00
回复了 jorneyr 创建的主题 程序员 Go 的范型怎么把 Response[指定类型] 转换为 Response[any]
@jorneyr 那其实输出类型 T ,返回类型 T 即可,你应该使用 T 类型而不是使用 any ,any 只是封装的 interface 类型,go 的泛型并不是 Java 的泛型,Java 的所有对象继承于 Object ,在 go 中每个结构体都是单独的类型,并不能强转,而且你需要在函数定义是知道输入什么类型,类似于 interface 可以接受任意类型参数,而定义泛型之后,编译器知道了 interface 是你定义的泛型结构体中的一个
2023-01-28 11:40:22 +08:00
回复了 jorneyr 创建的主题 程序员 Go 的范型怎么把 Response[指定类型] 转换为 Response[any]
@jorneyr 下面这段代码是否是你想要的功能
```
package main

// 定义一个结构体,Data 是一个泛型接口
type Response[T ResponseHandle] struct {
Code int `json:"code"` // 业务逻辑相关的 code ,不是 HTTP Status Code
Success bool `json:"success"` // 业务逻辑处理成功时为 true ,错误时为 false
Msg string `json:"msg"` // 请求的描述
Data T `json:"data,omitempty"` // 请求的 payload
}

type ResponseHandle interface {
log()
}

type AgentStats struct {
Status int
}

func (r *AgentStats) log() {
// do something
}

func main() {

}

// 输入泛型的 resp,在函数中执行相关的方法
func responseCommonHandle[T ResponseHandle](rsp Response[T]) {
rsp.Data.log()
}
```
2023-01-28 11:21:57 +08:00
回复了 jorneyr 创建的主题 程序员 Go 的范型怎么把 Response[指定类型] 转换为 Response[any]
@jorneyr
func foo[T any](in T) Response[T] {
// [1] 创建范型对象
rsp1 := Response[T]{
Code: 200,
Success: true,
Data: in,
}
return rsp1
}
你是说这样的功能吗,go 的泛型使用就是你确定入参和返回类型的情况下
2023-01-28 11:17:14 +08:00
回复了 jorneyr 创建的主题 程序员 Go 的范型怎么把 Response[指定类型] 转换为 Response[any]
编译错误说明了 Response[map[string]string]和 Response[any]是两个不同类型的参数
2022-12-21 10:19:03 +08:00
回复了 ubuntuGary 创建的主题 Java Mybatis 可以直接 insert List<Map<String, String>> 数据吗
可以
2022-12-05 11:08:22 +08:00
回复了 lsww 创建的主题 程序员 小公司用 jeecg 可以吗
没有多少系统是纯 curd 的吧
2022-11-09 14:18:39 +08:00
回复了 fyooo 创建的主题 程序员 2022 年搭建一个对外服务的网站需要采购什么云计算服务?
小网站买建站服务最划算,比单独买各种服务划算
2022-11-08 15:14:03 +08:00
回复了 whereisgungun 创建的主题 程序员 Java 求解如何优化 100 个 if 判断?
写一百个枚举或者 key-value 放 map 里
2022-11-02 15:17:36 +08:00
回复了 liuguangxuan 创建的主题 程序员 请教各位接过私活的大佬,能否普及一下干私活的流程?
契约锁,可以直接线上合同
2022-10-28 11:33:56 +08:00
回复了 klo424 创建的主题 Android 为什么没有手机厂商出售无预装系统的手机?
卖设备不如买服务
2022-10-28 11:31:06 +08:00
回复了 helloword001 创建的主题 程序员 iOS 转行干什么? Java 、React、Go、Vue?
Java 要的八股太多了,转的话准备很多
2022-10-27 17:34:19 +08:00
回复了 lingly02 创建的主题 程序员 怎么应付只知道要求加班的领导
结果导向,只要让他看到结果是符合预期的就可以,不要试图让他理解,肯定不关心过程的
2022-10-27 17:32:42 +08:00
回复了 phpdever 创建的主题 程序员 [程序员的解忧杂货铺] 微信摸鱼群诚邀大佬们加入~
图床挂了
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3044 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 14:10 · PVG 22:10 · LAX 06:10 · JFK 09:10
Developed with CodeLauncher
♥ Do have faith in what you're doing.