3

詳しく知りたいのです$:が、呼び方がわかりません。

:015 > $:
=> ["/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1", 
 "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1/x86_64-darwin11.1.0", 
 "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby", 
 "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/vendor_ruby/1.9.1", 
 "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/vendor_ruby/1.9.1/x86_64-darwin11.1.0", 
 "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/vendor_ruby", 
 "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/1.9.1", 
 "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/1.9.1/x86_64-darwin11.1.0"]
  • これの名前は何ですか?
  • どのように、いつ使用されますか?
  • それはまったく使用されるべきですか、それは良い習慣ですか、それとも悪い習慣ですか?
  • すべての Ruby 実装でサポートされていますか?
  • それに関するドキュメントはありますか?
4

3 に答える 3

8

Ruby には事前定義された変数がいくつかあります

Pre-defined variables
$!         The exception information message set by 'raise'.
$@         Array of backtrace of the last exception thrown.
$&         The string matched by the last successful match.
$`         The string to the left  of the last successful match.
$'         The string to the right of the last successful match.
$+         The highest group matched by the last successful match.
$1         The Nth group of the last successful match. May be > 1.
$~         The information about the last match in the current scope.
$=         The flag for case insensitive, nil by default.
$/         The input record separator, newline by default.
$\         The output record separator for the print and IO#write. Default is nil.
$,         The output field separator for the print and Array#join.
$;         The default separator for String#split.
$.         The current input line number of the last file that was read.
$<         The virtual concatenation file of the files given on command line (or from $stdin if no files were given).
$>         The default output for print, printf. $stdout by default.
$_         The last input line of string by gets or readline.
$0         Contains the name of the script being executed. May be assignable.
$*         Command line arguments given for the script sans args.
$$         The process number of the Ruby running this script.
$?         The status of the last executed child process.
$:         Load path for scripts and binary modules by load or require.
$"         The array contains the module names loaded by require.
$DEBUG     The status of the -d switch.
$FILENAME  Current input file from $<. Same as $<.filename.
$LOAD_PATH The alias to the $:.
$stderr    The current standard error output.
$stdin     The current standard input.
$stdout    The current standard output.
$VERBOSE   The verbose flag, which is set by the -v switch.
$-0        The alias to $/.
$-a        True if option -a is set. Read-only variable.
$-d        The alias to $DEBUG.
$-F        The alias to $;.
$-i        In in-place-edit mode, this variable holds the extension, otherwise nil.
$-I        The alias to $:.
$-l        True if option -l is set. Read-only variable.
$-p        True if option -p is set. Read-only variable.
$-v        The alias to $VERBOSE.
$-w        True if option -w is set.

http://www.zenspider.com/Languages/Ruby/QuickRef.html

于 2011-10-03T12:12:18.320 に答える
5
  • $:グローバルの正規 (英語) 名は$LOAD_PATH.
  • 名前が示すように、これはライブラリ検索パスの配列です。つまり、インタープリタがライブラリを検索するすべてのフォルダを表す文字列の配列です (require "mylibrary"命令に遭遇した場合) 。
  • グローバルを扱う場合と同じように注意して使用できます。実際には、gem やライブラリに含まれるテスト スクリプトやデモ スクリプトを作成するときによく使用されます。これにより、インストール前にテスト対象のライブラリを見つけるために、テストがロード パスを変更します(たとえば$: << "../lib"、スクリプトが の兄弟にあると仮定しますlib) 。
  • これは、すべての正規の Ruby バージョン/実装で使用されます。ただし、現在のディレクトリ.は 1.8.x では $: の一部であり、1.9.x ではセキュリティ上の理由から削除されていることに注意してください。
  • Docs はすべての Ruby 入門 (picaxe book、ruby docs サイト) で利用できます。
于 2011-10-03T12:16:46.760 に答える
3

に相当し$LOAD_PATHます。したがって、「ロードパス」と呼ぶことができると思います。グーグルruby load_pathとあなたは多くの有用な情報を見つけるはずです.

個人的には読むの$LOAD_PATHが好き$:ですが、言語の一部なので、使用しても問題ないと思います。

于 2011-10-03T12:11:08.767 に答える