Development Tip

Ruby에서 "$"문자는 무엇을 의미합니까?

yourdevel 2020. 12. 11. 20:25
반응형

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_sREPL에서 실행 시도 하면 반환되는 것을 볼 수 ","있습니다. 그게 다가 아닙니다! $다른 접미어는 다른 많은 것을 의미 할 수 있습니다 .

왜? 물론 Perl!


Ruby 포럼 을 인용하려면 :

루비에는 미리 정의 된 변수 세트가 있습니다.

$: = 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

반응형