V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  body007  ›  全部回复第 1 页 / 共 23 页
回复总数  442
1  2  3  4  5  6  7  8  9  10 ... 23  
2 天前
回复了 body007 创建的主题 游戏 守望先锋 2 月 19 日回归
@coderluan
@Track13

刚开始还不太懂你们说的漫威争锋,然后去搜了下,居然是个游戏,去 B 站看了下视频和守望先锋模式有点像啊。
2 天前
回复了 thisisgpy 创建的主题 程序员 golang 老鸟快快显圣
把 gf 官方文档看完,只用 gf 一个库就行。
@tsanie 我也觉得小乌龟非常好用,但貌似只有 window 才有,有时候我会把 Linux 目录映射到 window 上,然后用小乌龟 https://i.imgur.com/agAJ0Rd.png
所以支付宝的钱我每月还信用卡了,慢慢还总会还完的。
@hyzyxmj 我已经放弃 wsl 了,主要问题就是网络,遇到过编写程序无法监听 tcp 端口需要重启 winnat 服务的情况,没用 wsl 的时候不会出现。
https://i.imgur.com/F7L8EPV.png

试试关闭防火墙的 wsl 配置。
@ZeroDu #19

```go
package main

import (
"bytes"
"fmt"

jsoniter "github.com/json-iterator/go"
)

func main() {
s := `
[
"com.test.UserInfo",
{
"userName": "13123",
"email": "[email protected]",
"roleIds": [
"java.util.ArrayList",
[
"109","209","309"
]
]
}
]`
var (
cnf = jsoniter.ConfigCompatibleWithStandardLibrary

buf bytes.Buffer
out = jsoniter.NewStream(cnf, &buf, 512)
)

recursivelyRemoveTypes(out, jsoniter.ParseString(cnf, s).ReadAny())
err := out.Flush()
if err != nil {
panic(err)
}

fmt.Println(buf.String())
}

func recursivelyRemoveTypes(out *jsoniter.Stream, data jsoniter.Any) {
switch data.ValueType() {
case jsoniter.ArrayValue:
if ds := data.Size(); ds > 0 {
if ds == 2 {
if data.Get(0).ToString() != "" {
recursivelyRemoveTypes(out, data.Get(1))
return
}
}

out.WriteArrayStart()
for i := 0; i < ds; i++ {
if i > 0 {
out.WriteMore()
}
recursivelyRemoveTypes(out, data.Get(i))
}
out.WriteArrayEnd()
} else {
out.WriteEmptyArray()
}
case jsoniter.ObjectValue:
if ks := data.Keys(); len(ks) > 0 {
out.WriteObjectStart()
for i, k := range ks {
if i > 0 {
out.WriteMore()
}
out.WriteObjectField(k)
recursivelyRemoveTypes(out, data.Get(k))
}
out.WriteObjectEnd()
} else {
out.WriteEmptyObject()
}
default:
data.WriteTo(out)
}
}
```

@a132811 你这个递归提醒了我,可以用上面方法不用解析 json 和序列化 json ,性能应该不错。
18 天前
回复了 Hawthorne 创建的主题 macOS 大家都用哪个键唤醒系统?
移动鼠标。
我这边是用 github.com/json-iterator/go 这个库的 jsoniter.Get 方法,示例如下,我是默认 "com.test.UserInfo" 和 "java.util.ArrayList" 这类数据都在第 0 项里面,所以用 data.Get(1) 取第 1 项。

```go
package main

import (
"fmt"

jsoniter "github.com/json-iterator/go"
)

func main() {
s := `
[
"com.test.UserInfo",
{
"userName": "13123",
"email": "[email protected]",
"roleIds": [
"java.util.ArrayList",
[
"109","209","309"
]
]
}
]`
data := jsoniter.Get([]byte(s), 1)
var (
userName = data.Get("userName").ToString()
email = data.Get("email").ToString()

roleIds []string
)
data.Get("roleIds", 1).ToVal(&roleIds)
fmt.Printf("userName: %s, email: %s, roleIds: %#v\n", userName, email, roleIds)
}
```
@pdf01 我给的这个仓库有国际化,支持中文额。
32 天前
回复了 BlackSnow 创建的主题 微信 换机微信记录迁移
要不试试微信:我 -> 设置 -> 聊天 -> 聊天记录迁移与备份
35 天前
回复了 v2zzzzz 创建的主题 Linux 2025 年了,大家服务器用的什么 Linux 版本
Debian
已经从 wsl2 换回 VMware 虚拟 Linux 了。最大的问题就是网络,遇到有些问题甚至需要防火墙放通 wsl 网卡才行。有时候还会使得 window 写的 go 程序无法监听端口,只能重启 winnat 服务才正常,没用 wsl 时都没遇到这种问题。
https://i.imgur.com/lWqVBuv.png

用这个,添加了配置同步功能。
48 天前
回复了 145431 创建的主题 生活 南方冬天又冷又费钱😭
来深圳,在家还能传短袖短裤。
太厉害了。
微信:我->设置->通用->辅助功能-> QQ 邮箱提醒,绑定一下邮箱。然后用代码通过别的邮箱给这个 QQ 邮箱发邮件,然后微信就来通知了。
1  2  3  4  5  6  7  8  9  10 ... 23  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3315 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 11:42 · PVG 19:42 · LAX 03:42 · JFK 06:42
Developed with CodeLauncher
♥ Do have faith in what you're doing.