Rubyシンボルをエラーなく整数に型キャストできます。 だから:a.to_i
は合法です。私はこの整数の意味が何であるか疑問に思っていました。それはそのシンボル固有の固有の値ですか?Rubyシンボルを整数に変換する
答えて
Ruby 1.9でSymbol#to_i
が削除されたため、これは今後互換性がないため、これを行うべきではありません。それにかかわらず、docs say this about it:
プログラムの特定の実行内で一意の整数を返します。
どちらもC関数SYM2ID()
を呼び出す終わるように、それは、シンボルをobject_id
を呼び出すこととほぼ等価です。
ありがとう、アンドリュー。私にとって、これはGoogleの深いリンクに続く危険の教訓でした:-)私はhttp://corelib.rubyonrails.org/classes/Symbol.htmlへのリンクを投稿しようとしていました。これはto_iが生きて蹴っていることを示しています。そのページ上(またはURL内)のどこにでもRuby 1.8.4(!)のドキュメントがあります。 Ruby * docではなくROR(URLが示すように)です。 Ruby 1.8.4用のサイトであることを確認するには、ルートに移動してタイトルを確認する必要があります。だから、教訓は学んだ。 Googleの深いdocリンクをフォローしているときは、あなたが探しているドキュメントのバージョンを確認してください。 –
1.8.xのシンボルは、即時オブジェクトです。彼らの実装は高速で、ほとんどの場合、ほとんどありませんでした。しかしそれに伴い、ガベージコレクションの不足に関するセキュリティ上の懸念が生じました。
#to_i
および#to_int
のメソッドは一意の整数を返し、内部実装に関連していました。
シンボルは即値として、暗黙的および明示的な整数変換はすべて1.9.xで削除されました。もちろん、object_id
を入手することができます。興味深いのは、1.8.x to_i
とobject_id
が同じ番号を返さなかったことです。
- 1. Rubyで文字列を整数に変換する方法
- 2. 因数を整数に変換する
- 3. ベクトルを整数に変換
- 4. size_tを整数に変換する(C++)
- 5. バンドルを整数に変換する(インテント)
- 6. 整数を文字に変換する
- 7. Java:バイトを整数に変換する
- 8. ハイブローオブジェクトを整数に変換するスパーク
- 9. 指数表記のエリクシール数を整数に変換する
- 10. C++数値の小数部分を整数に変換する
- 11. Golangの整数を浮動小数点数に変換する
- 12. 2バイト長の整数をPythonの整数に変換するには
- 13. 整数色の値をRGBに変換
- 14. 文字列を整数に変換
- 15. 整数変換のErlangビットストリング
- 16. タイプシステムを使用して整数を数値に変換する
- 17. NSArrayコンポーネントを整数または10進数に変換する
- 18. 数字の文字配列を整数に変換する
- 19. Elispで整数を浮動小数点に変換する
- 20. Rのコマンドライン引数を整数ベクトルに変換する
- 21. vb.net指数値を整数に変換する
- 22. SSE:短い整数を浮動小数点に変換する
- 23. 整数に変換せずにバイナリ数を1減らす
- 24. 16進数の文字列をRubyで符号付き整数に変換する
- 25. すべての数値文字列をRubyハッシュの整数に再帰的に変換します。
- 26. floatを整数に変換するには?
- 27. 文字列を整数に変換してテストするには?
- 28. 整数をPHPで配列に変換するには?
- 29. 整数をRのカテゴリデータに変換するには?
- 30. Matlabのビット配列を整数に変換するには?
':a.to_i'は私のために' irb'とRailsコンソールでエラーを投げます。どのように成功しているのかは分かりません。 –