for >, c != ?\s, into: "", do: > "helloworld" 我现在有点理解整个-6ren">
gpt4 book ai didi

string - "?\s"在 Elixir 中意味着什么?

转载 作者:行者123 更新时间:2023-12-02 08:19:30 27 4
gpt4 key购买 nike

在 Elixir 文档中,涵盖 comprehensions我遇到了以下示例:

iex> for <<c <- " hello world ">>, c != ?\s, into: "", do: <<c>>
"helloworld"

我现在有点理解整个表达式了,但是我不明白“?\s”是什么意思。我知道它以某种方式匹配,从而过滤掉空格,但这就是我的理解的终点。

编辑:我现在发现它解析为32,这是空格的字符代码,但我仍然不知道为什么。

最佳答案

具有用美元符号表示的 char 文字。

Erlang/OTP 22 [erts-10.6.1] [...]

Eshell V10.6.1 (abort with ^G)
1> $\s == 32.
%%⇒ true

同理具有根据 code documentation 的 char 文字与 erlang 字 rune 字完全相同:

This is exactly what Erlang does with Erlang char literals ($a).

<小时/>

基本上,?\s? 完全相同。 (问号后跟一个空格。)

#               ⇓ space here
iex|1 ▶ ?\s == ?
warning: found ? followed by code point 0x20 (space), please use ?\s instead

?\s 没有什么特别的,正如您所看到的:

for <<c <- " hello world ">>, c != ?o, into: "", do: <<c>> 
#⇒ " hell wrld "

此外,还对 char 文字使用 ?c 表示法:

main> ?\s == ' '
#⇒ true

关于string - "?\s"在 Elixir 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60341757/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com