source

루비 보석 의존성에서 타일드-greater-than(~>)은 무엇을 의미합니까?

manysource 2023. 6. 9. 22:06

루비 보석 의존성에서 타일드-greater-than(~>)은 무엇을 의미합니까?

무엇인가.~>루비 보석 의존성의 맥락에서 의미가 있습니까?

예를 들어 RubyMine IDE에서 레거시 프로젝트를 열 때 다음 메시지가 표시됩니다.

프로젝트에 필요한 보석이 첨부되지 않았습니다.
rel(~> 2.0.2),rspec-해석(~> 2.5.0)...

저는 루비 세계의 다른 곳에서 이 타일드보다 큰 표기법을 본 적이 있습니다(루비마인에 국한되지 않음).이 연산자는 어색하게 들리는 tilde-greater-than 외에 다른 이름을 가지고 있습니까?

이것은 "마지막 자리와 같거나 더 크다"라는 뜻입니다. ~> 2.3"2.3 이상 3.0 미만"을 의미하는 반면,~> 2.3.0는 "2.3.0 이상 2.3.0 미만이지만 2.4.0 미만"을 의미합니다.

"약간 더 크다"로 발음할 수 있습니다.

비관적 버전 제약 조건

이는 메이저 버전과 같거나 큰 하위 버전을 가져오는 것을 의미합니다.

그래서 예를 들면,arel (~> 2.0.2)사용 가능한 경우 버전 사용

  • 2.0.2
  • 2.0.3
  • 2.0.?(?가 >= 2인 경우)

2.1을 사용하지 않습니다.

인터넷에 의하면

RubyGem 종속성이 "~> 1.4.37" 구문을 사용하는 경우, 이는 "1.4.37 이상의 버전이지만 1.5 이상의 버전은 아니다"를 의미합니다. 1

다시 말해서, 당신을 위해.
arel수 있습니다.2.1 > version >= 2.0.2그리고.
rspec-expectation수 있습니다.2.6 > version >= 2.5.0.

이는 버전 2.0.2 이상의 보석을 기대하고 있지만, 2.1의 경우는 기대하지 않는다는 것을 의미합니다.arel (~> 2.0.2)이것은 사람들이 사소한 수정사항으로 구문을 변경하는 것을 릴리스하지 않기 때문에 수행됩니다.그렇게arel 2.0.32.0.2 이상의 버그/스파이웨어 수정이 예상됨

언급URL : https://stackoverflow.com/questions/5170547/what-does-tilde-greater-than-mean-in-ruby-gem-dependencies