如何在Elixir中轻松获取第n个String字符?

Igg*_*ggy 2 string elixir

在Ruby中,我可以轻松地获取字符串的第n个元素"Hello"[0] #=> "H".

我知道String.slice/3Elixir,我可以这样做:String.slice("Hello", 0..0).这个方法看起来有点冗长,是否有更短的方法来获取Elixir中的第n个字符串元素?

Dog*_*ert 5

要将第n个字形作为字符串,您可以使用String.at/2:

iex(1)> String.at "hello", 2
"l"
iex(2)> String.at "?r²", 2
"²"
Run Code Online (Sandbox Code Playgroud)

要将第n个字节作为整数,您可以使用:binary.at/2:

iex(3)> :binary.at "hello", 2
108
iex(4)> <<108>>
"l"
iex(5)> :binary.at "?r²", 2
114
iex(6)> <<114>>
"r"
Run Code Online (Sandbox Code Playgroud)