为什么这样,
iex(23)> << "Halo" >>
"Halo"
虽然在Elixir中这不合适?
iex(24)> << String.reverse("Halo") >>
** (ArgumentError) argument error
答案 0 :(得分:8)
如果在<< >>
内有表达式,则表达式的类型假定为一个整数,表示默认为一个字节。
iex(1)> << trunc(65.2) >>
"A"
iex(2)> << trunc(1000.3) >>
<<232>>
如果表达式是二进制文件(在Elixir中也称为String),则需要明确指定表达式的类型:
iex(3)> << String.reverse("Halo")::binary >>
"olaH"