2

単一の文字をScalaCharオブジェクトに変換する最も簡単で簡潔な方法は何ですか?

私は次の解決策を見つけましたが、不必要な変換や配列固有の操作を使用せずに、よりエレガントなScalaの方法でこの問題を解決できたはずであると信じているため、どういうわけか満足できないようです。

scala> "A".toCharArray.head
res0: Char = A
4

2 に答える 2

23

これを行うには膨大な数の方法があります。ここにいくつかあります:

'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 倍高速です。

于 2013-06-17T19:32:31.230 に答える