V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  bv  ›  全部回复第 2 页 / 共 6 页
回复总数  101
1  2  3  4  5  6  
135 天前
回复了 wuhao1 创建的主题 Linux WPS 加粗字体糊成一坨,到现在都一直没有解决
支持,我还以为是我系统的问题呢。
func (s *Stack) Pop() (int, bool) {
if s.IsEmpty() {
return 0, false
}
item := s.items[len(s.items)-1]
s.items = s.items[:len(s.items)-1]
return item, true
}
154 天前
回复了 gl3081 创建的主题 分享创造 自己写的云原生微服务框架欢迎 star
可能是 Java 八股文把依赖注入问烂了,导致很多人听到依赖注入就不辨是非的厌恶。

宽泛来说:构造方法传参就是一种依赖注入的行为,无论是否用到依赖注入框架。

希望依赖注入框架自身保持最小依赖,少整花里胡哨超纲的功能,保持 KISS 原则。
依赖注入,用框架也可以,自己依赖注入也可以:

```go
func Run(cfg Config) error {
db, err := mysql.Open(cfg.Database)
if err != nil {
return err
}
defer db.Close()

mq, err := kafka.Open(cfg.Kafka)
if err != nil {
return err
}
defer mq.Close()

rdb, err := redis.Open(cfg.Redis)
if err != nil {
return err
}
defer rdb.Close()

bar := NewBar(db, mq, rdb)

return bar.Foo()
}

func NewBar(db *sql.DB, mq *kafka.Client, rdb *redis.Client) *Bar {
return &Bar{
db: db,
mq: mq,
rdb: rdb,
}
}

type Bar struct {
db *sql.DB
mq *kafka.Client
rdb *redis.Client
}

func (b *Bar) Foo() error {
_, err := b.db.Exec("SELECT 1")
return err
}
```
204 天前
回复了 afxcn 创建的主题 Go 编程语言 使用 go 遇到的一个奇怪问题,求教
@bv 接 #1
1. 这个函数是 Init ,不是 init
2. 锁只锁了 std = NewLogger(opts) 语句,使用时没加锁,std 变量存在 race 问题。
3. func NewLogger(opts *Options) *zapLogger 可导出方法返回了不可导出的类型,不够优雅。

初学者还是应该拜读更规范的源码,免得入门时被低质量代码熏陶,一些错误理念会根深蒂固。
这代码没什么营养,不要纠结为何这么写。
210 天前
回复了 waiaan 创建的主题 JavaScript 这段 if...else 有优雅的写法吗?
下面这样,有点为了优化而优化,让人难以理解了:
function onSortChange(order, prop) {
let props = new Map([
["thisYearIncome", 1],
["lastYearIncome", 3],
["rate", 5],
]);

this.fetchData((order === "descending" ? 0 : 1) + props.get(prop))
}
以标准库为例:

```
package main

import (
"fmt"
"net/http"
)

func main() {
mux := http.NewServeMux()
mux.HandleFunc("/hi", Language)
mux.HandleFunc("/{lang}/hi", Language)

http.ListenAndServe(":9999", mux)
}

func Language(w http.ResponseWriter, r *http.Request) {
lang := r.PathValue("lang")
if lang == "" {
lang = r.Header.Get("Accept-Language")
}

fmt.Println(lang)
w.Write([]byte(lang))
}
```
240 天前
回复了 yujianwjj 创建的主题 Go 编程语言 go template 源码的一个疑问
@evercyan 感谢,这个规则我明白,Parse(text string) (*Template, error) 反响适配 Must 感觉很奇怪,我感觉 #15 的 Must 写法也不影响 Must 链式调用。
240 天前
回复了 yujianwjj 创建的主题 Go 编程语言 go template 源码的一个疑问
我的疑惑就是:如果 Parse 不返回 *Template ,也不影响 Must 的链式调用。

func Must(t *Template, s string) *Template {
if err := t.Parse(s); err != nil {
panic(err)
}
return t
}

type Template struct{}

func (t *Template) Parse(s string) error {
return nil
}
240 天前
回复了 yujianwjj 创建的主题 Go 编程语言 go template 源码的一个疑问
@evercyan 看到了,通过 Must 调用确实可以做到链式调用。但是这么设计总感觉是本末倒置呀。
240 天前
回复了 yujianwjj 创建的主题 Go 编程语言 go template 源码的一个疑问
@maocat 你确定是因为为了链式调用,Parse 返回了 (*Template, error) 两个参数,还怎么做链式调用?
240 天前
回复了 yujianwjj 创建的主题 Go 编程语言 go template 源码的一个疑问
前 3L 不知道想表达什么,我个人觉得这么定义 func (t *Template) Parse(text string) error 确实可行,但不清除设计这个接口时为何要返回 *Template
240 天前
回复了 Hariz 创建的主题 Go 编程语言 https://www.boc.cn 握手失败
可能是通过 ja3 指纹
245 天前
回复了 GopherDaily 创建的主题 Go 编程语言 Go: string 和 rune
245 天前
回复了 GopherDaily 创建的主题 Go 编程语言 Go: string 和 rune
@mizuki9 这个问题 Google 一搜一大堆,大致有几点:1. Unicode 编码是从 U+0000 到 U+10FFFF ,即使是有符号的 int32 也可以表示。
当时还试用了一下,看到 UI 直接没有继续使用的欲望了,OP 在做这个选题的时候可能都没有简单的市场调研和竟品分析。
1. UI 确实不咋好看。
2. 部署需要轻便,简单的 html 引入 js css 就可以部署运行,弄个 docker 有点重了。
3. 参考下列竟品,做好交互。
https://petstore.swagger.io/
https://elements-demo.stoplight.io/
https://scalar.com/
https://redocly.github.io/redoc/
266 天前
回复了 yomige 创建的主题 程序员 隐藏 IP 地址且不影响速度
@guo4224 #12 正解
1  2  3  4  5  6  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1332 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 24ms · UTC 17:49 · PVG 01:49 · LAX 09:49 · JFK 12:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.