포슀트

πŸŒ’ Yoda Notation

πŸ’Ž Yoda Notation(Condition)


μ°Έκ³ 

1
2
3
4
5
// 1
if (length >= 10)

// 2
if (10 <= length)

β€œ180보닀 λ‚΄ ν‚€κ°€ μ»Έλ‹€λ©΄..” 은 μ•„λ¬΄λž˜λ„ λΆ€μžμ—°μŠ€λŸ½λ‹€.
같은 이유둜 2번 쑰건문도 λΆ€μžμ—°μŠ€λŸ½λ‹€.
β€œ10이 lengtg보닀 μž‘κ±°λ‚˜ 같닀면” 은 μ•„λ¬΄λž˜λ„ λΆ€μžμ—°μŠ€λŸ½λ‹€.

이처럼 비ꡐ 쑰건문을 적을 λ•ŒλŠ”, β€œλ‚΄ ν‚€κ°€ 180보닀 μ»Έλ‹€λ©΄..” 같은 μ–΄μˆœκ³Ό λ™μΌν•˜κ²Œ,
μ™Όμͺ½μ— λ³€ν•˜λŠ” κ°’(μ§ˆλ¬Έμ„ λ°›λŠ”), 였λ₯Έμͺ½μ— 정해진 κ°’(비ꡐ λŒ€μƒμœΌλ‘œ μ‚¬μš© λ˜λŠ”) 으둜 μ λŠ” 것이 μΌλ°˜μ μ΄λ‹€.
β€œlengthκ°€ 10보닀 μž‘κ±°λ‚˜ 같닀면” 은 μƒλŒ€μ μœΌλ‘œ μžμ—°μŠ€λŸ½λ‹€.

반면, μ˜λ„μ μœΌλ‘œ 2번 쑰건문처럼 μ λŠ” κ²½μš°κ°€ μžˆλ‹€.

1
2
if (intVar = 10)
// intVar == 10 이라고 μ μ—ˆμ–΄μ•Ό ν–ˆλŠ”λ° !

μœ„μ²˜λŸΌ == λ₯Ό 써야 ν•˜λŠ” μƒν™©μ—μ„œ,
μ‹€μˆ˜λ‘œ = 만 μ μ–΄λ²„λ¦¬λŠ” μ‹€μˆ˜λ₯Ό ν•  λ•Œκ°€ μžˆλ‹€.

μ΄λŠ” λΆ„λͺ… 논리적인 였λ₯˜κ°€ μ‘΄μž¬ν•˜μ§€λ§Œ, μ½”λ“œ μƒμ˜ 였λ₯˜λŠ” μ‘΄μž¬ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—,
컴파일 μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€.

λ•Œλ¬Έμ— 이λ₯Ό λ†“μΉ˜λŠ” 경우,
직접 버그λ₯Ό μ°Ύμ•„μ•Ό ν•˜λŠ” κ²½μš°κ°€ λ°œμƒν•  수 μžˆλ‹€.

1
2
if (10 = intVar)
// 컴파일 μ—λŸ¬ !

μ΄λ•Œ, μœ„μ²˜λŸΌ ν”Όμ—°μ‚°μžλ“€μ˜ μˆœμ„œλ₯Ό λ°”κΎΈκ²Œ λœλ‹€λ©΄,
μƒμˆ˜μ— λ³€μˆ˜λ₯Ό λŒ€μž…ν•  μˆ˜λŠ” 없기에, 컴파일 μ—λŸ¬κ°€ λ°œμƒν•˜κ²Œ λœλ‹€.
이λ₯Ό 톡해 μ‹€μˆ˜λ₯Ό 사전에 방지할 수 μžˆλ‹€!

이처럼 μ˜λ„μ μœΌλ‘œ 읽기에 λΆ€μžμ—°μŠ€λŸ¬μš΄ μˆœμ„œλ‘œ 비ꡐ 쑰건문을 μ λŠ” 방법을,
μŠ€νƒ€μ›Œμ¦ˆμ˜ λ“±μž₯인물, μš”λ‹€κ°€ μ–΄μƒ‰ν•œ μ–΄μˆœμœΌλ‘œ λ§ν•œλ‹€λŠ” νŠΉμ§•μ—μ„œ 따와,
μš”λ‹€ ν‘œκΈ°λ²•(쑰건) 이라고 ν•œλ‹€.

μš”λ‹€ ν‘œκΈ°λ²•μ—λŠ” 또 λ‹€λ₯Έ 이점도 μžˆλ‹€.

1
2
3
4
5
6
7
8
9
// 1
String myString = null;
if (myString.equals("foobar")) { /* ... */ }
// This causes a NullPointerException in Java

// 2
String myString = null;
if ("foobar".equals(myString)) { /* ... */ }
// This resolves to false without throwing a NullPointerException

μœ„λŠ” Wikipedia의 Yoda_conditions λ¬Έμ„œμ˜ μ˜ˆμ œλ‹€.
μœ„κ°™μ€ μƒν™©μ—μ„œλŠ” μ˜ˆμ™Έ λ°œμƒμ„ ν”Όν•  수 있게 ν•΄μ£ΌλŠ” 역할도 ν•˜κ²Œ λœλ‹€.

μ΄λŸ¬ν•œ 이점듀이 λΆ„λͺ… μ‘΄μž¬ν•˜κΈ°λŠ” ν•˜μ§€λ§Œ,

μ•—

μ΅œμ‹  컴파일러/IDE μ—μ„œλŠ” μ•Œμž˜λ”±μœΌλ‘œ μ‹€μˆ˜μ— λŒ€ν•΄ κ²½κ³ λ₯Ό ν‘œκΈ°ν•΄μ£ΌκΈ°λ„ ν•˜κ³ ,
μ• μ΄ˆμ— ν• λ‹Ή μ—°μ‚° μ‹œ λ°˜ν™˜κ°’μ΄ μ‘΄μž¬ν•˜μ§€ μ•Šκ±°λ‚˜, 쑰건문에 ν• λ‹Ή 연산문을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ” 언어듀도 있고,
무엇보닀 가독성을 ν•΄μΉ˜κΈ° λ•Œλ¬Έμ—,

β€˜μš”λ‹€ ν‘œκΈ°λ²•μ€ λΆˆν•„μš”ν•œ 과거의 것이 λ˜μ–΄ κ°€κ³  μžˆλ‹€.’
λΌλŠ” β€˜μ½κΈ° 쒋은 μ½”λ“œκ°€ 쒋은 μ½”λ“œκ°€β€™ μ €μžμ˜ 의견처럼,
μš”μ¦˜ λ“€μ–΄μ„œλŠ” κ·Έλ ‡κ²Œ 쓰이지 μ•ŠλŠ” λͺ¨μ–‘인 것 κ°™λ‹€.

이 κΈ°μ‚¬λŠ” μ €μž‘κΆŒμžμ˜ CC BY 4.0 λΌμ΄μ„ΌμŠ€λ₯Ό λ”°λ¦…λ‹ˆλ‹€.