2015-01-04 1 views
0

다음 코드 줄은 어떻게 루비에서 문자열을 연결합니까?어떻게 문자열 연결이 루비에서 작동합니까?

2.1.0 :052 > value = "Kamesh" "Waran" 
=> "KameshWaran" 

나는 '+'인수로 호출 할 때 전달 된 문자열을 연결 String 클래스의 방법을 이해합니다. 공간 ('')이 연산자/메소드가 될 수있는 방법은 무엇입니까?

공간 ('')이 어떻게 문자열을 연결하는지 자세히 설명해 주실 수 있습니까?

답변

3

공백은 연산자가 아닙니다. 이것은 문자열 리터럴에 대해서만 작동하며 큰 따옴표처럼 리터럴 구문의 일부입니다. 둘 사이에 공백이 있지만 두 개의 문자열 리터럴이있는 경우 단일 문자열로 바뀝니다. C의 최신 버전에서 빌린 대회입니다.

irb(main):001:0> foobar = "foo" "bar" 
=> "foobar" 
irb(main):002:0> foo="foo" 
=> "foo" 
irb(main):003:0> bar="bar" 
=> "bar" 
irb(main):004:0> foo bar 
NoMethodError: undefined method `foo' for main:Object 
     from (irb):4 
     from /usr/local/var/rbenv/versions/2.1.3/bin/irb:11:in `<main>' 
irb(main):005:0> 
1

이 사이트에서 검색을하면 답을 얻을 수 있습니다.

는에 찾았 Why do two strings separated by space concatenate in Ruby?

구현 세부 사항은 루비 소스 코드 parse.y 파일에서 찾을 수 있습니다. 특히 여기에.

루비 문자열이다 중 하나 TCHAR (예-Q)와, 문자열 1 (예를 들면 'Q', 'Q', 또는 % Q {Q}) 또는 문자열 1 문자열의 연접 재귀 정의 그 자체가 "foo"와 같은 문자열 표현이됩니다. "bar", "foo" "bar"또는? f "oo" 'bar'가 연결됩니다.