文字列とシンボルは同一、ハッシュキーはシンボルのみ、エンコードはUTF-8固定|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社エンジニアの「?」を「!」に。文字列とシンボルは同一、ハッシュキーはシンボルのみ、エンコードはUTF-8固定hachi8833シェアツイートブックマークLINEこんにちは、hachi8833です。0.1.9を用いています。1.0になるまでは仕様変更の可能性もありますのでご了承ください。インストール方法や動かし方については第1回目をご覧ください。Gobyと表記することにします。⚓Gobyの文法上の特徴(4)文字列とシンボルは同一GobyにもRubyと同様に:symbolのようなシンボルリテラル表記があります。Gobyのシンボルリテラルは、単なる文字列リテラルのショートハンドでしかありません。従って、:symbolは常にStringクラスのオブジェクトである"symbol"に変換されます。Stringご存知のとおり、RubyにはSymbolクラスがあります。GobyにはSymbolクラスはありません。pry(main)>RubyではStringかSymbolかを判定する一手間が生じがちで、RailsだとActiveSupport::HashWithIndifferentAccessで戦うことがよくありますが、Gobyはその点の解消を図っています。Rubyのシンボルをなくせるか考えてみた(翻訳)なお、Rubyにあるスペース含みの文字列をシンボルに変換する機能は、Gobyにはありません。文字列のfreezeについて現時点のGobyでは文字列のfreezeはまだ導入されていませんが、いずれ導入したいという意向です。破壊的メソッドは極力減らすか、場合によっては完全になくすかもしれません。Gobyで文字列リテラルのobject_idを取ってみるとわかりますが、今は毎回オブジェクトIDが異なっています。842353281344もちろん、リテラルを変数に代入すればオブジェクトIDは定まります。最適化は今後の課題と割り切っています。}はRubyと同じ要領で扱えますが、1つ重要な違いがあります。ハッシュのキーに使えるのは事実上シンボルリテラルだけです。正確に言うと「シンボルリテラルに変換可能な文字列」ですね。次のように変数aをこしらえてハッシュリテラルのキーに置くと、その場は通ってしまいますが、参照時に怒られます。Rubyのようにキーに一般的なオブジェクトを使うことはできません。Arrayそれだけではありません。次のように文字列リテラルをハッシュリテラルのキーとして使うことも許されません。キーは常にシンボルリテラルでなければなりません。0当然、ロケット演算子=>もGobyにはありません?。この仕様を見返してみて、オブジェクトをハッシュリテラルのキーに指定する時点で怒るのがよさそうにも思えましたが、それをやると変数名とシンボルリテラルがたまたま同じになったときにまで怒られてしまい、間違いなくうざくなるので、この方法がよいのだと思います。⚓Gobyの文法上の特徴(6)文字列のエンコードはUTF-8一択RubyではCSI方式に基づき、さまざまなエンコーディングを文字列オブジェクトに指定できます。マルチエンコーディングの扱いについてはRubyは最強の部類でしょう。Rubyの内部文字コードはUTF-8ではない...だと...?!GobyのStringクラスはそのあたりをすっぱり割り切って、UTF-8一択にしています。当初はGo言語の素朴なstringが文字列型に使われていたのですが、漢字などのマルチリンガル文字を正しくカウントできるようruneも導入し、4バイトのUTF-8に対応すべくテストにも寿司ビールチェックを追加してあります。runeはまだ徹底できてない気もするので、今後の課題かもしれません。結城はもともとPerlerなのですが、perldocはその点素晴らしいです。EXAMPLESのセクションはコピペでそれっぽく動く。それを見て「なーるほど、こういう関数(モジュール)か」とざっくり理解する。ドキュメントのあれこれはその後で読む。perldocはそんな感じ。2017例の結城浩さんのツイートを意識してということもあり、最近ちまちまとGobyのAPIドキュメントやテストを更新するのが無上の楽しみです。83a2506ドキュメントを更新してみると、思いもよらぬバグが見つかったりするのがまた楽しい?。いっぺんに直すと迷惑になるので、ドキュメントにまずTODOでメモして、別プルリクで修正するようにしてます。3]みたいな味も素っ気もないサンプルコードも、そのうちもう少し血の通ったものにしたいと思います。コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。チュートリアル第2版の監修および半分程度を翻訳、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れて更新翻訳中。enno.jpを運営。実は最近Go言語が好きで、Goで書かれたRubyライクなGoby言語のメンテナーでもある。仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。Storageを使ってはいけない(翻訳)#Tags#会社紹介#自社サービス#勉強会#Rails#PHP#デザイン#実績#週刊RailsウオッチCONTACTお気軽にご相談ください。(翻訳)CONTACTTechRachoでは、パートナーシップをご検討いただける方からのご連絡をお待ちしております。お気軽にご意見・ご相談ください。