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

http://ufcpp.net/

本日のネタ画像

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日 @ 22:47

カテゴリー: C#

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。