๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“Œ Language/Swift

[Swift] @discardableResult๋ž€?

by Fomagran ๐Ÿ’ป 2020. 12. 24.
728x90
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค!

 

์š”์ฆ˜ RxSwift ๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ ์žˆ๋Š”๋ฐ ํ•จ์ˆ˜ ์œ—๋ถ€๋ถ„(?)์— @discardableResult ๋ผ๊ณ  ์“ฐ์—ฌ์žˆ๊ธธ๋ž˜ ์ด๊ฑด ๋ฌด์Šจ ์—ญํ• ์„ ํ•˜์ง€?

 

ํ•˜๊ณ  ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์–ด์„œ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

 

 

@discardableResult๋ž€?


Swift ๊ณต์‹์‚ฌ์ดํŠธ์—์„  ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์˜๋˜์–ด ์žˆ๋Š”๋ฐ์—ฌ ํ•ด์„ํ•ด๋ณด์ž๋ฉด (๊ตฌ๊ธ€๋ฒˆ์—ญ๊ธฐ๋กœ...)

 

"๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ๋˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ˜ธ์ถœ๋  ๋•Œ ์ปดํŒŒ์ผ๋Ÿฌ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด ํ•จ์ˆ˜ ๋˜๋Š” ๋ฉ”์„œ๋“œ ์„ ์–ธ์— ์ด ์†์„ฑ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค." ๋ผ๊ณ  ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ์ปดํŒŒ์ผ๋Ÿฌ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ฒŒ ํ•ด์ค€๋‹ค๋„ค์š”.

 

์˜ˆ์ œ๋กœ ์„ค๋ช…๋“œ๋ฆฌ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด Boolean๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” something() ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ something์„ ์‚ฌ์šฉํ•˜๋ฉด 

์•„๋ž˜์™€ ๊ฐ™์ด "Result of call to 'something()' is unused" ์ด๋ผ๋Š” ๊ฒฝ๊ณ ๊ฐ€ ๋œจ๋Š”๋ฐ ์ด๊ฒƒ์€ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋œป์ด์ฃ .

๊ทธ๋Ÿฌ๋‹ˆ๊น ์•„๋ž˜์ฒ˜๋Ÿผ ๋ญ ์ถœ๋ ฅ์„ ํ•˜๋“  ์–ด๋–ค ํ•จ์ˆ˜์— ์จ์„œ ๋ฐ˜ํ™˜์„ ํ•˜๋“  ์–ด๋–ป๊ฒŒ๋“  ๊ฒฐ๊ณผ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฝ๊ณ ๊ฐ€ ๋œจ์ง€ ์•Š๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ƒํ™ฉ์— ๋”ฐ๋ผ์„œ ๊ฒฐ๊ณผ๊ฐ’์„ ์“ฐ์ง€ ์•Š์•„๋„ ๋ ๋•Œ๊ฐ€ ์žˆ์ž–์•„์š”? 

 

๊ทธ๋Ÿด๋•Œ ์ด ๊ฒฝ๊ณ ๊ฐ€ ๊ฑฐ์Šฌ๋ฆฐ๋‹ค๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜ ์œ—๋ถ€๋ถ„์— @discardableResult๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฒฝ๊ณ ๊ฐ€ ์‚ฌ๋ผ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์ฒ˜๋Ÿผ ํ•จ์ˆ˜ ์‹œ์ž‘ํ• ๋•Œ ๋ถ™์—ฌ์ฃผ์…”๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค!

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€