単一の文字をScalaのCharオブジェクトに変換する最も簡単で簡潔な方法は何ですか?
私は次の解決策を見つけましたが、不必要な変換や配列固有の操作を使用せずに、よりエレガントなScalaの方法でこの問題を解決できたはずであると信じているため、どういうわけか満足できないようです。
scala> "A".toCharArray.head
res0: Char = A
単一の文字をScalaのCharオブジェクトに変換する最も簡単で簡潔な方法は何ですか?
私は次の解決策を見つけましたが、不必要な変換や配列固有の操作を使用せずに、よりエレガントなScalaの方法でこの問題を解決できたはずであると信じているため、どういうわけか満足できないようです。
scala> "A".toCharArray.head
res0: Char = A
これを行うには膨大な数の方法があります。ここにいくつかあります:
'A' // Why not just write a char to begin with?
"A"(0) // Think of "A" like an array--this is fast
"A".charAt(0) // This is what you'd do in Java--also fast
"A".head // Think of "A" like a list--a little slower
"A".headOption // Produces Option[Char], useful if the string might be empty
Scala を頻繁に使用する場合は、この.head
バージョンが最もクリーンで明確です。数字が 1 つずれたり、考えなければならない面倒なことはありません。ただし、これを頻繁に行う必要がある場合はhead
、文字をボックス化する必要がある一般的なインターフェイスを介して実行されますが.charAt(0)
、(0)
後者は約 3 倍高速です。