【Ruby3.x】String::intern()メソッドの使い方
internメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
internメソッドは、Stringクラスのインスタンスである文字列を、Rubyにおけるシンボルに変換して返すメソッドです。
Rubyのシンボルとは、変更されない一意の識別子として使用される特別なオブジェクトです。例えば、:nameや:ageのようにコロンから始まる形で表現されます。このinternメソッドを使用すると、"hello".internという形で呼び出した場合、:helloというシンボルが生成され、返されます。
文字列は同じ内容であっても異なるオブジェクトとしてメモリ上に複数存在しえますが、シンボルは同じ内容であれば常にメモリ上で同じオブジェクトを指すという特徴があります。この特性により、シンボルは文字列と比較してメモリの使用量が少なく、また比較処理も高速に行われるという利点があります。
そのため、主にハッシュのキーとして利用されたり、メソッド名や変数名のような固定の識別子としてコード内で頻繁に利用されることで、プログラムの効率を高めることができます。
ただし、プログラムの実行中に新しく生成されたシンボルは、ガベージコレクションによってメモリから解放されない特性があります。このため、ユーザーからの入力など、予測不能な文字列を無闇に大量にシンボルへ変換し続けると、メモリを過度に消費する可能性があるため注意が必要です。この特性を理解し、適切に利用することで、Rubyプログラムのパフォーマンスと堅牢性を向上させることができます。
構文(syntax)
1"string".intern
引数(parameters)
引数なし
引数はありません
戻り値(return)
Symbol
文字列をシンボルに変換したものを返します。シンボルは、Rubyにおいて名前を表すための特殊なオブジェクトです。