V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  body007  ›  全部回复第 5 页 / 共 27 页
回复总数  531
1  2  3  4  5  6  7  8  9  10 ... 27  
自建无任何不适 https://i.imgur.com/agAJ0Rd.png
291 天前
回复了 wweerrgtc 创建的主题 优惠信息 电信全国领话费口令:草长莺飞
1 ,感谢分享
@ericcen 以前的版本要装中文插件,最新版全部自带中文额。
293 天前
回复了 shujuliuer 创建的主题 Windows 可能是全球最快捷的修改 hosts 文件方式
@ericcen goland 自带功能哦,你也可以用那个代码检查的工具,也可以检查出循环里面的 defer
@hunterster #52 看到循环里面用 defer ,jb 都报警告了。生产环境被同事这种代码坑过 https://i.imgur.com/agAJ0Rd.png
https://i.imgur.com/EAPGj79.png
295 天前
回复了 MichaelGzy 创建的主题 信息安全 这个地址是不是骗子?
把不是去掉,除非他们敢全用积分兑换,不然一概不信。我经常收到这种短信,点进去就是钱加积分一起兑换,都要钱了,我为啥不去正规网购平台买。
结婚当天我一滴酒都没喝,还想我发烟,想屁吃呢。我去老丈人家不会坐在能闻到烟味的地方。
299 天前
回复了 BlackHole1 创建的主题 分享创造 一款全新的工作流 IDE
本来不知道做什么的,看了视频发现太牛逼了。必须点赞支持。
301 天前
回复了 body007 创建的主题 游戏 守望先锋 2 月 19 日回归
@coderluan
@Track13

刚开始还不太懂你们说的漫威争锋,然后去搜了下,居然是个游戏,去 B 站看了下视频和守望先锋模式有点像啊。
301 天前
回复了 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 ,性能应该不错。
317 天前
回复了 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 我给的这个仓库有国际化,支持中文额。
1  2  3  4  5  6  7  8  9  10 ... 27  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   915 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 19:58 · PVG 03:58 · LAX 11:58 · JFK 14:58
♥ Do have faith in what you're doing.