golang 一个很神奇的问题

2023-08-29 18:41:45 +08:00
 ysz1121

有谁能帮解释一下这是啥原因?

使用 strings.TrimLeft app-a哪去了?

2867 次点击
所在节点    程序员
37 条回复
loveuer
2023-08-29 18:44:50 +08:00
看文档。。。
hsfzxjy
2023-08-29 18:46:28 +08:00
热知识:TrimLeft 不等于 RemovePrefix ,在任何语言都是
deplivesb
2023-08-29 18:49:56 +08:00
给你贴一个 GPT 的回答:
`strings.TrimLeft` 函数在 Go 语言( Golang )的标准库中用于从字符串的左侧(开头)移除一组指定的字符。这个函数接受两个字符串参数:第一个是原始字符串,第二个是包含所有需要从原始字符串左侧移除的字符的字符串。

下面是一个简单的示例:

```go
package main

import (
"fmt"
"strings"
)

func main() {
originalString := " Hello, world! "
trimmedString := strings.TrimLeft(originalString, " ")

fmt.Printf("Original: '%s'\n", originalString)
fmt.Printf("Trimmed: '%s'\n", trimmedString)
}
```

在这个例子中,`strings.TrimLeft` 函数会移除 `originalString` 左侧的所有空格字符。输出将是:

```
Original: ' Hello, world! '
Trimmed: 'Hello, world! '
```

注意,该函数并不会修改原始字符串。相反,它会返回一个新的字符串。

此外,第二个参数是一个字符集,不是一个前缀字符串。也就是说,`strings.TrimLeft` 函数会从左侧移除所有在该字符集中的字符,而不是移除一个特定的前缀。例如:

```go
result := strings.TrimLeft("123abc456", "123")
```

`result` 的值会是 `"abc456"`,因为所有在 `"123"` 字符集中的字符都会从 `"123abc456"` 的左侧被移除。
deplivesb
2023-08-29 18:53:05 +08:00
都“后端高级研发工程师” 了,我不信你不会查文档。
https://pkg.go.dev/strings#TrimLeft
bruce0
2023-08-29 19:19:03 +08:00
你想要的 应该是 `strings.TrimPrefix()` 这个 `strings.TrimLeft()` 我以前也没注意到 看了一下文档才了解
jiang1234321
2023-08-29 19:20:33 +08:00
没复现,能贴一下源码吗
j0hnj
2023-08-29 19:52:34 +08:00
文档不看,issue 倒是提的很快 https://github.com/golang/go/issues/62344
yyf1234
2023-08-29 20:17:10 +08:00
有这发帖和提 issue 的时间,但凡你点进去看看文档呢。。。无语
lsk569937453
2023-08-29 20:18:49 +08:00
@j0hnj 笑死。。。。
Ericcccccccc
2023-08-29 20:29:47 +08:00
这些函数的源码都挺短的吧.
yuk1no
2023-08-29 20:39:38 +08:00
RTFM
1423
2023-08-29 20:41:29 +08:00
离谱,也太水了吧
Xusually
2023-08-29 20:46:03 +08:00
Doc 里直接写了:To remove a prefix, use TrimPrefix instead.

假如你的 authorization 是"Bearer aeerrr"的话,你会更囧 rz 的
zlstone
2023-08-29 20:56:00 +08:00
@j0hnj #7 哈哈哈哈
nulIptr
2023-08-29 20:56:47 +08:00
哈哈哈这种事情我肯定会先反思反思自己的问题,而不是直接去开个 issue
zlstone
2023-08-29 20:58:52 +08:00
这就是后端高级研发工程师吗
Baloneo
2023-08-29 21:27:09 +08:00
fmt.Println(strings.TrimLeft("Abc123-c12456", "Abc123-")) >> 456
orangie
2023-08-29 21:44:50 +08:00
Goland 都提示你了,第二个参数叫做 cutset ,当作字符集合,不是当作字符串。
realpg
2023-08-29 22:11:59 +08:00
程序员懂简单英语的重要性:
cutset
skywalkerfc
2023-08-29 22:32:30 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/969283

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX