Ruby에서 "$"문자는 무엇을 의미합니까?
한동안 Ruby on Rails를 사용하여 실제 소스를 살펴보기로 결정했습니다. GitHub에서 저장소를 가져와 둘러보기 시작했습니다. 내가 무엇을하는지 또는 무엇을 참조하는지 잘 모르는 코드를 발견했습니다.
이 코드는 actionmailer / test / abstract_unit.rb에서 보았습니다.
root = File.expand_path('../../..', __FILE__)
begin
require "#{root}/vendor/gems/environment"
rescue LoadError
$:.unshift("#{root}/activesupport/lib")
$:.unshift("#{root}/actionpack/lib")
end
lib = File.expand_path("#{File.dirname(__FILE__)}/../lib")
$:.unshift(lib) unless $:.include?('lib') || $:.include?(lib)
require 'rubygems'
require 'test/unit'
require 'action_mailer'
require 'action_mailer/test_case'
$ :( 일명 "블링")이 무엇을 참조하는지 누군가가 말해 줄 수 있습니까?
$ :는 외부 파일을 찾는 데 사용되는 전역 변수입니다.
에서 http://www.zenspider.com/Languages/Ruby/QuickRef.html#18
$ :로드 또는 요구에 의한 스크립트 및 바이너리 모듈의로드 경로.
$
지역 변수, @instance 변수 또는 @@ class 변수와 달리 전역 변수를 식별합니다.
언어 제공 전역 변수 중에는 $:
으로도 식별됩니다.$LOAD_PATH
루비에 대해 이상한 점을 주목하고 싶습니다!
$
실제로로드 경로를 의미합니다. 그리고 ;
"끝선"을 의미합니다. 그러나!
$;
필드 구분자를 의미합니다. $;.to_s
REPL에서 실행 을 시도 하면 반환되는 것을 볼 수 ","
있습니다. 그게 다가 아닙니다! $
다른 접미어는 다른 많은 것을 의미 할 수 있습니다 .
왜? 물론 Perl!
루비에는 미리 정의 된 변수 세트가 있습니다.
$: = default search path (array of paths)
__FILE__ = current sourcefile
내가 올바르게하면 (100 % 확실하지 않음) 현재 파일을 탐색 하여이 검색 경로 배열에 lib 경로를 추가합니다. 정확히 가장 좋은 방법은 아닙니다. RAILS_ROOT (최소한 레일 프로젝트의 경우)로 시작하겠습니다.
$:.unshift
와 같다
$LOAD_PATH.unshift
. 다음과 같이 말할 수도 있습니다.
$: <<
$LOAD_PATH <<
로드 경로를 설정하는 데 매우 일반적인 Ruby 관용구입니다.
참고 URL : https://stackoverflow.com/questions/1896876/what-does-the-character-mean-in-ruby
'Development Tip' 카테고리의 다른 글
C # 6 보간 된 문자열을 사용하여 double 형식을 지정하는 방법은 무엇입니까? (0) | 2020.12.11 |
---|---|
쿼리 문자열 앞에 슬래시를 건너 뛰어도됩니까? (0) | 2020.12.11 |
IEnumerable Count ()와 길이의 차이점 (0) | 2020.12.11 |
Mercurial : 변경 사항을 어떻게 취소합니까? (0) | 2020.12.11 |
실시간 웹 애플리케이션을위한 짧은 폴링과 긴 폴링? (0) | 2020.12.11 |