V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  awanganddong  ›  全部回复第 5 页 / 共 25 页
回复总数  489
1  2  3  4  5  6  7  8  9  10 ... 25  
2023-01-12 11:37:17 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 请教下 go 怎么定义范型的
从结构中删除字段或将其隐藏在 JSON 响应中
这个文章比较好

https://cloud.tencent.com/developer/ask/sof/76384
2023-01-12 10:41:44 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 请教下 go 怎么定义范型的
找到个好东西

json to go
https://mholt.github.io/json-to-go/
2023-01-12 10:15:59 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 请教下 go 怎么定义范型的
我设置成 1s,随后启动了 go 服务,然后通过 lsof -i:8000 查看 pid
执行 kill -Hup pid
这时候程序退出了,但是 8000 端口依然被监听。
代码中监听了一下信号
signal.Notify(quit, os.Interrupt, syscall.SIGQUIT, syscall.SIGHUP)
2023-01-12 09:50:37 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 请教下 go 怎么定义范型的
@yaott2020 这块是 gin 的官方 demo ,我直接搬过来了
2023-01-11 22:42:46 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 请教下 go 怎么定义范型的
@MidGap 再请教个问题,
我是通过 supervisor 来守护 go
我通过 supervisorctl stop program 关闭程序
然后再重启的时候,报接口被占用的错误
2023/01/11 22:38:38 listen: listen tcp :8000: bind: address already in use

我已经配置了优化退出,还是出问题。

package main

import (
"context"
"log"
"net/http"
"os"
"os/signal"
"time"

"github.com/gin-gonic/gin"
)

func main() {
router := gin.Default()
router.GET("/", func(c *gin.Context) {
time.Sleep(5 * time.Second)
c.String( http.StatusOK, "Welcome Gin Server")
})

srv := &http.Server{
Addr: ":8080",
Handler: router,
}

go func() {
// 服务连接
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
log.Fatalf("listen: %s\n", err)
}
}()

// 等待中断信号以优雅地关闭服务器(设置 5 秒的超时时间)
quit := make(chan os.Signal)
signal.Notify(quit, os.Interrupt)
<-quit
log.Println("Shutdown Server ...")

ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
if err := srv.Shutdown(ctx); err != nil {
log.Fatal("Server Shutdown:", err)
}
log.Println("Server exiting")
}
2023-01-11 21:44:16 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 请教下 go 怎么定义范型的
@MidGap 我明白你的意思了,谢谢大家了。
2023-01-11 21:30:15 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 请教下 go 怎么定义范型的
@MidGap 我按你的方式写,我不知道怎么给 Nobility 这个 struct 赋值了。

类似于 4 楼的问题
2023-01-11 21:22:37 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 请教下 go 怎么定义范型的
@polythene 比如我返回的值是下边的 json

```
{
"code": 200,
"data": [
{
"id": 1,
"nobility": {
"name": "",
"image": "",
"desc": ""
},
"time": 0,
"is_goddess": false
},

],
"msg": "ok"
}
```
我想要的效果是如果 nobility 任何一项为空,则就是空对象

```
{
"code": 200,
"data": [
{
"id": 1,
"nobility": {}, //上边的转化成这样
"time": 0,
"is_goddess": false
},

],
"msg": "ok"
}
```
2023-01-11 20:10:24 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 请教下 go 怎么定义范型的
我代码是这样的
2023-01-11 20:10:15 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 请教下 go 怎么定义范型的
```
type Im struct{

Nobility T `json:"nobility"`
Time int `json:"time"`
IsGoddess bool `json:"is_goddess"`
}
type T struct {
Nobility struct {
Name string `json:"name"`
Image string `json:"image"`
Desc string `json:"desc"`
} `json:"nobility"`
}
```
2023-01-11 20:02:10 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 请教下 go 怎么定义范型的
@MidGap
```
nobilityInfo T.Nobility
money := getMoney(val.Id, val.Gender)
for _, value := range nobility {
if money >= value.StartCoin && money <= value.EndCoin {
nobilityInfo = T.Nobility{
value.Name,
pkg.AppSetting.QiniuUrl + value.Image,
value.Desc,
}
break
}
}
if val.Gender == 2 && val.NobilityClose == 2 {
nobilityInfo = struct {}{}
}
```
类似于这种我该怎么赋值
上边报错了
2023-01-11 10:10:33 +08:00
回复了 awanganddong 创建的主题 程序员 请教下 lua 怎么转发接口
@eason1874 我刚才测试了下,一个问题是没有加 http/https 。还有一个问题,ngx.redirect 好像是 get 跳转,并且没有携带任何参数。
2023-01-11 09:58:15 +08:00
回复了 awanganddong 创建的主题 程序员 请教下 lua 怎么转发接口
刚用 nginx 转发正常,就想知道为啥 lua 转发失败。
2023-01-11 09:54:17 +08:00
回复了 awanganddong 创建的主题 程序员 请教下 lua 怎么转发接口
@yikyo 我就直接用 nginx 了
@eason1874 没有错误日志,这是最尴尬的点
2023-01-10 19:31:59 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 gin 中间件怎么传值
@seth19960929 我试出来了,首先定义个新结构体,然后 make 这个结构,对这个结构体赋值{"id":1}。然后对{"name":"\u674e\u56db"},{"name":"\u5f20\u4e09"}结构体循环赋值到新结构体上。
2023-01-10 10:27:36 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 gin 中间件怎么传值
返回的 json 如下

[{"id":1},{"name":"\u674e\u56db"},{"name":"\u5f20\u4e09"}]
2023-01-10 10:23:01 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 gin 中间件怎么传值
类似于 php 的 array_merge 把不同字段的数组拼接到一块
2023-01-10 10:19:01 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 gin 中间件怎么传值
@seth19960929 明白了

顺便问下,go 返回值怎么拼接返回的结构。

比如第一个列,展示 3 个字段。其余几列都是 10 个字段,

怎么把他们拼接到一个列表上。
2023-01-09 15:44:16 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 gin 中间件怎么传值
@seth19960929 请教下,可变变量如何传值

获取了一个数组[1,2,3]
我转化的数据是"1","2"
但是给 redis 传值失败
func (c *cmdable) HMGet(key string, fields ...string) *SliceCmd
2023-01-09 14:46:38 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 gin 中间件怎么传值
谢谢各位,现在可以了。
1  2  3  4  5  6  7  8  9  10 ... 25  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   934 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 20:53 · PVG 04:53 · LAX 13:53 · JFK 16:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.