++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

Archive for 6月 3rd, 2014

本日のネタ画像

leave a comment »

Swiftが識別子に絵文字を使えると聞いて。

https://twitter.com/ufcpp/status/473693778029461505

https://twitter.com/ufcpp/status/473696462648274945

roslyn-emoji

C#でも識別子に絵文字が!

何がネタかというと、Roslynのソースコードいじって、自分で識別子に使える文字を増やした(char.IsLowSurrogateとかIsHightSurrogateとか判定してる部分がそう)。

やってることは単純で、Unicodeのサロゲートペアを識別子として認識するように || で条件式を増やしただけ。

なので、もちろん、このままだとたぶんいろいろとやばい文字を受け付けてしまうのではないかと。ちゃんとやろうと思ったら、ちゃんと文字の範囲チェックが必要なものの、そこまでコストかけたいかといわれると、実装コスト的にもコンパイル速度的にもちょっと。

Swiftはどうしてるんだろう。というか、何で絵文字を識別子にしようと思ったんだろう(なんとなく、サロゲートペアに対応してるよってことをアピールしたいだけな気もしつつ)。

Written by ufcpp

2014年6月3日 at 22:47

カテゴリー: C#