2017-01-11 3 views
0

-ruby 풋에 해당하는 프로그래밍 방식으로 상호 작용과 : 내가 먼저 어떻게해야합니까 어떻게다음 어떤 백 스페이스없이 프로그램과 상호 작용해야 내가 탈출 저장해야한다는 문자열을

string = 'first=#{first_name}&last=#{last_name}' 

    p string.to_s 

=> "first=\#{first_name}&last=\#{last_name}" 

    puts string.to_s 

=> first=#{first_name}&last=#{last_name} 

을 = # {FIRST_NAME } & last = # {last_name}을 (를) 스캔 할 수있는 변수에 할당하려면 "\"문자가 없습니까?

+1

오류가 있습니까? 역 슬래시는 문제가되는 것처럼 보이지 않습니다. 이스케이프 문자 일 뿐이며 문자열에 적절한 문자가 아닙니다. – jvillian

+0

@jvillian 감사합니다. 오류가 발생하지 않았습니다. –

답변

0

이 두 동일합니다 어느 경우

# double quotes 
"first=\#{first_name}&last=\#{last_name}" 

# single quotes 
'first=#{first_name}&last=#{last_name}' 

백 슬래시 문자열의 실제 부분이다. string.include? '\'이라고 말하면 false를 반환합니다.

그러나 '\#{}'이라고 말하면 역 슬래시가 문자열의 일부가됩니다. 작은 따옴표로는 #{}이 삽입되지 않고 리터럴 문자로 해석되기 때문입니다.

일부 예 : "\" 루비에 유효하지 않은 문자열입니다

foo = 1 
'#{foo}' # => "\#{foo}" 
"#{foo}" # => "1" 
'#{foo}' == "\#{foo}" # => true 
"\#{foo}".include? '\' # => false 
'\#{foo}'.include? '\' # => true 

하는 것으로,하지만 '\' 유효합니다.

+0

감사합니다. Max! 정말 감사! :) –