VBScript에 대해 말하는 모든 사이트에서 '&
'연산자가 문자열 연결 연산자로 나열됩니다. 그러나 내가 최근에 상속 한 일부 코드에서는 '+
'연산자가 사용되는 것을 볼 수 있으며 이로 인해 어떠한 오류도 나타나지 않습니다. 이것은 받아 들여진 대안인가?VBScript의 +와 & 연산자의 차이점은 무엇입니까?
답변
+ 연산자가 오버로드되는 반면 & 연산자는 오버로드되지 않습니다. & 연산자는 문자열 연결 만 수행합니다. 일부 서클의 경우 & 연산자는 모호하지 않으므로 오버로드로 인해 의도하지 않은 결과가 발생하지 않으므로 모범 사례로 사용됩니다.
+
문자열이 숫자로 해석 될 수있는 경우 연산자가 역화 될 수 있습니다. 불쾌한 놀라움을 원하지 않으면 &을 사용하여 문자열을 연결하십시오.
&
연산자는 문자열 연결을 수행합니다. 즉, 피연산자를 문자열로 변환해야합니다 (예 : CStr
을 먼저 호출하는 것과 같습니다). +
은 차례로 표현식 중 하나가 숫자 인 경우 강제 추가됩니다. 예를 들어 :
1 + 2
"1" + 2
1 + "2"
당신에게
3
을 제공하는 반면
1 & 2
, 당신에게 12
을 제공합니다.
따라서 모호성을 제거하므로 문자열 연결에 &
을 사용하는 것이 좋습니다.
문자열 번호 + 번호를 지정하는 경우 +1입니다. 수락 된 대답은 숫자 문자열을 숫자로 변환하는 vbscript에 대해서는 언급하지 않았습니다. – baacke
어떤 경우에는 +가 예외를 throw합니다. 예를 들어 다음과 같은 : - COM 개체 소스가 이벤트를 발생 때 예외를 얻을 것이다
Sub SimpleObject_FloatPropertyChanging(fvalue, cancel)
'fvalue is a floating point number
MsgBox "Received Event: " + fvalue
End Sub
는 다음 중 하나를 수행해야합니다
MsgBox "Received Event: " & fvalue
또는
MsgBox "Received Event: " + CStr(fvalue)
이 두 경우 모두 CStr(value)
을 사용하는 것이 가장 좋습니다. 문자열 연결에 대한 위의 주석 당 &을 사용하는 것은 거의 항상 최선의 방법입니다.
- 1. obj 함수에서 (+)와 (-) 연산자의 차이점
- 2. 도트 연산자와 범위 분석 연산자의 차이점은 무엇입니까
- 3. Solr에서 NOT과 - (빼기) 연산자의 차이점은 무엇입니까?
- 4. PHP에서. =와 + =의 차이점은 무엇입니까?
- 5. 파이썬에서 ''와 ' "의 차이점은 무엇입니까?
- 6. UNIX에서 $ @와 $ *의 차이점은 무엇입니까?
- 7. i ++와 ++ i의 차이점은 무엇입니까?
- 8. Lisp에서 '와 #'의 차이점은 무엇입니까?
- 9. ~와!의 차이점은 무엇입니까? 운영자?
- 10. 정규식에서()와 []의 차이점은 무엇입니까?
- 11. PHP에서 ==와! =의 차이점은 무엇입니까?
- 12. Gtk +와 Qt의 차이점은 무엇입니까?
- 13. jsdom.env()와 jsdom.jsdom의 차이점은 무엇입니까?
- 14. PE32 +와 PE32의 차이점은 무엇입니까?
- 15. JSONObject []와 JSONObject의 차이점은 무엇입니까?
- 16. ShellScript : %와 %%의 차이점은 무엇입니까?
- 17. ==와 대소 문자의 차이점은 무엇입니까?
- 18. 파이썬에서 {}와 []의 차이점은 무엇입니까?
- 19. 사용자 정의 변환과 사용자 정의 연산자의 차이점은 무엇입니까?
- 20. PHP의 동일 비교 연산자와 비교 연산자의 차이점은 무엇입니까?
- 21. "$ {foo.bar}"와 "# {foo.bar}"의 차이점은 무엇입니까?
- 22. Control.Select()와 Control.Focus()의 차이점은 무엇입니까?
- 23. FireBug의 console.log()와 console.debug()의 차이점은 무엇입니까?
- 24. Java에서 this.method()와 method()의 차이점은 무엇입니까?
- 25. document.getElementById ('mybox')와 mybox의 차이점은 무엇입니까?
- 26. getService()와 createInstance()의 차이점은 무엇입니까?
- 27. save()와 put()의 차이점은 무엇입니까?
- 28. /^ 1? $ /와/^ 1 $/패턴 일치의 차이점은 무엇입니까?
- 29. CALayer -drawInContext :와 -renderInContext :의 차이점은 무엇입니까?
- 30. 자바 스크립트에서 '\'와 '\ n'의 차이점은 무엇입니까?
* '+ 연산자가 오버로드되었습니다.'* - * 어떤 의미로 오버로드 되었습니까? – Wolf
VB에서 @wolf + 연산자는 컨텍스트에 따라 더하기와 연결을 모두 수행 할 수 있습니다. –
음, 이미 읽었습니다. 오버로드 된 단어 자체가 너무 많아서 과부하가 되었기 때문에이 시점에서 대답이 조금 더 정확할 수 있습니다. – Wolf