Functions
Go์ functions๋ฅผ ์์๋ณด์์
Types in fuction
ํจ์์ argument์ return ๊ฐ์ type์ ๋ช ์ํด์ค์ผ ํ๋ค
compiler์๊ฒ type์ด ๋ฌด์์ธ์ง ์๋ ค์ค์ผ๋ก์จ ๋น ๋ฅด๊ฒ compile ํ ์ ์๊ฒ ํ๋ค!
Java๋ ์ ์ฌ! Python์ด๋์ ๋๋ฌด ๋ค๋ฆ...
ex)
argument ๋ค์ type์ด ๊ฐ์ผ๋ฉด ํ ๋ฒ๋ง ๋ช ์ํด๋ ๋๋ค
ex)
return์ด ํ์ํ ํจ์๋ ๊ผญ return type์ ๋ช ์ํด์ผ ํ๋ค!
Multiple Return Values
Go๋ multiple return value ๋ฅผ ์ง์ํ๋ค
๋ง์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค๊ณผ ๋ค๋ฅธ Go์ ํน์ง์ด๋ค!
ex)
๋จ, return ํ๋ ๊ฐ์๋ณด๋ค ์ ๊ฒ ๊ฐ์ ๋ฐ์ ์ ์๋ค!
ex) Error๊ฐ ๋ฐ์ํ ์์
lenAndUpper๋ ๋ ๊ฐ์ ๊ฐ์ return ํ๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ error๋ฅผ ๋ฑ๋๋ค
์ด๋ด ๋์๋
_
๋ฅผ ๋ฃ์ด value ๊ฐ์ ๋ฌด์ํ๋๋ก ํ๋ฉด ๋๋คex)
์ด๋ ๊ฒ
underscore (_)
๋ ignored value๋ก ์ฌ์ฉํ ์ ์๋ค!compiler๋ ignored value๋ฅผ ๋ง๊ทธ๋๋ก ๋ฌด์ํ๋ค
Variadic functions
...
์ ์ฌ์ฉํ์ฌ ๊ฐ๋ณ์ธ์ ํจ์๋ฅผ ๋ง๋ค ์ ์๋ค๋ฐฉ๋ฒ์ type์์
...
๋ฅผ ๋ถ์ด๋ฉด ๋๋ค! ์ด๊ฒ ๋์ด๋ค!ex)
Naked returns
ํจ์์ return type์ ๋ช ์ํ ๋ returnํ ๊ฐ์ ๋ฏธ๋ฆฌ ์ ์ธํ๊ณ , ๋น์ด์๋ return์ ํ๋ ๊ฒ
์ ์ธ ํ ๋ ์ด๊ธฐํ ๋๋ฏ๋ก ํจ์ ๋ด๋ถ์์๋ ํด๋น variable์ update ํ๋ ๊ฒ์ด๋ค!
returnํ value๋ฅผ ๋ช ์ํ์ง ์๊ณ return ํ ์ ์๋ค
ex)
ํ์คํ๊ฒ ์ด๋ค ๊ฐ์ด return ๋๋์ง ๋ช ์ํ๊ณ ์ถ์ผ๋ฉด ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค
defer
function์ด ๋๋ ํ ์คํ๋๋ ์ฝ๋
ํจ์๊ฐ ์ข ๋ฃ๋์์ ๋ defer๋ฅผ ํตํด ์ถ๊ฐ์ ์ผ๋ก ๋ฌด์ธ๊ฐ ๋์ํ ์ ์๋๋ก ์ค์ ํ ์ ์๋ค
return ๊ฐ์ด ์๋ ํจ์๋ผ๋ฉด return ๋ ํ์ defer ๊ฐ ์คํ๋๋ค
ex)
defer๋ฅผ ํจ์ ์ข ๋ฃ ํ image๋ file์ ๋ซ๊ฑฐ๋ ์ญ์ ํ๊ณ , API request ๋ณด๋ด๋ ๊ฒ์ ํ์ฉํ ์ ์๋ค!
Last updated
Was this helpful?