큰따옴표 대 작은따옴표
사용해야 하는 특정 시간이 있습니까?""
대''
?
저는 입력하기가 더 쉽기 때문에 대부분의 시간 동안 싱글 따옴표를 사용해왔지만, 제가 입력해야 할지 모르겠어요.
예.get 'user/new'
대.get "user/new"
" "
문자열 보간을 수행할 수 있습니다. 예:
world_type = 'Mars'
"Hello #{world_type}"
보간을 제외하고, 또 다른 차이점은 '슬립 시퀀스'가 단일 따옴표에서 작동하지 않는다는 것입니다.
puts 'a\nb' # just print a\nb
puts "a\nb" # print a, then b at newline
싱글 사이에는 차이가 있습니다.''
및 큰따옴표""
문자열로 평가할 항목의 측면에서 루비로 표시됩니다.
처음에는 문자열의 리터럴 형식에서 단일 따옴표 또는 이중 따옴표 사이에 있는 것이 문자열 개체로 평가된다는 점을 명확히 하고자 합니다. 이는 Ruby String 클래스의 인스턴스입니다.
그러므로,'stackoverflow'
그리고."stackoverflow"
둘 다 String 클래스의 인스턴스를 전혀 차이 없이 평가합니다.
차이
두 개의 문자 형식 문자열(단일 따옴표 또는 이중 따옴표)의 본질적인 차이점은 큰 따옴표는 이스케이프 시퀀스를 허용하는 반면 작은 따옴표는 허용하지 않는다는 것입니다!
작은 따옴표로 만든 문자열 리터럴은 문자열 상호 작용을 지원하지 않으며 시퀀스를 이스케이프하지 않습니다.
적절한 예는 다음과 같습니다.
"\n" # will be interpreted as a new line
반면에.
'\n' # will display the actual escape sequence to the user
작은 따옴표를 사용한 보간은 전혀 작동하지 않습니다.
'#{Time.now}'
=> "\#{Time.now}" # which is not what you want..
모범 사례
대부분의 Ruby Linter에서 제안하는 것처럼 문자열에 단일 따옴표 리터럴을 사용하고 보간/도피 시퀀스의 경우 이중 따옴표 리터럴을 사용합니다.
당신의 질문에 대답하기 위해, 당신은 사용해야 합니다.""
문자열 보간을 수행하려는 경우:
a = 2
puts "#{a}"
그렇지 않으면 간단한 따옴표를 사용합니다.
또한 성능 면에서 차이가 있는지 궁금하다면 StackOverflow에서 이에 대한 훌륭한 질문이 있습니다.
그리고 만약 당신이 RoR에 정말로 익숙하지 않다면, 저는 당신이 언어의 기초를 배우기 위해 괜찮은 루비 책을 선택하기를 권합니다.이것은 여러분이 무엇을 하고 있는지 이해하는 데 도움이 될 것입니다(그리고 여러분이 레일즈가 마법이라고 생각하지 않게 해줄 것입니다).저는 개인적으로 The Well grounded Rubyist를 추천합니다.
인쇄에서 "\n"이라는 답과 유사하게, 다음은 차이의 또 다른 경우입니다.
puts "\1" -> get special character
puts '\1' -> get \1
따라서 *는 큰따옴표로 묶은 이스케이프 문자로 변환되었지만 작은따옴표로는 변환되지 않았습니다.참고로 str.gsub(/정규식/, '\1,\2')와 같은 정규식에서 사용할 때 출력에 영향을 미칩니다.
단일 따옴표를 사용하려는 또 다른 이유는 정규식 패턴을 문자열로 전달하는 경우입니다.
이 정규식 패턴은 단일 따옴표 내에서 전달되므로 작동합니다.
"123 ABC".match('\d')
=> #<MatchData "1">
이 정규식 패턴은 이중 따옴표 내에서 전달되었기 때문에 실패합니다(이 패턴이 작동하려면 이중 이스케이프해야 합니다).
"123 ABC".match("\d")
=> nil
이 특정한 경우에, 당신이 그것을 어떻게 쓰는지는 아무런 차이가 없습니다.그들은 동등합니다.또한 루비 가이드/자습서를 더 읽어보시기 바랍니다 :)
언급URL : https://stackoverflow.com/questions/6395288/double-vs-single-quotes
'source' 카테고리의 다른 글
PostgreSQL: 명령줄에서 매개 변수를 전달하는 방법은 무엇입니까? (0) | 2023.06.01 |
---|---|
pg_dump를 사용하여 데이터베이스 내의 한 테이블에서만 삽입문 가져오기 (0) | 2023.06.01 |
할당 전에 참조된 로컬(?) 변수 (0) | 2023.06.01 |
CSS 100% 높이(패딩/마진 포함) (0) | 2023.06.01 |
안드로이드에서 가로 모드를 비활성화하려면 어떻게 해야 합니까? (0) | 2023.06.01 |