2016-11-26 15 views

答えて

7

あなたはパターンマッチングを用いて、第1 nバイト得ることができます:あなたはUTF-8文字以来、単一のパターンを用いて、第1 n UTF-8コードポイントを取得することはできません

iex(1)> n = 4 
4 
iex(2)> <<head :: binary-size(n)>> <> rest = "my string" 
"my string" 
iex(3)> head 
"my s" 
iex(4)> rest 
"tring" 

をすることができます可変バイト数を占めており、Elixirのパターンマッチングはそれをサポートしていません。パターン内に::utf8を使用して、最初の(または固定数の)UTF-8コードポイントを得ることができます。

iex(1)> <<cp::utf8>> <> rest = "ƒoo" 
"ƒoo" 
iex(2)> cp 
402 
iex(3)> <<cp::utf8>> 
"ƒ" 
iex(4)> rest 
"oo" 
関連する問題