함수와 반환(return)값, 전체 요약

우리가 함수에 대해서 정말 많이 다루었습니다.
1. 복잡한 것 따로 정리해서 간단하게 불러 쓸 때 좋다.
2. 여러군데 쓰일 때 반복을 줄일 수 있다.
3. Input값을 줘서 경우에 따라 다르게 일을 처리할 수 있다.

오늘 배울 부분은 바로 반환(return)값 입니다.
여기까지 배우면 함수의 모든 부분을 다 다루었다고 생각됩니다.

함수와 반환(return)값

방금 만들었던 함수 안에 ImageList 지역변수(local variable)가 있습니다.
이 리스트는 Film 또는 Sticker를 담는 리스트로 local variable입니다.
하지만 이 list들은 함수 밖에서도 사용되고 있죠! 어라? Local variable이 블록군 밖에서 사용되고 있다???

그 이유는 함수 속의 “do result” 블록 때문입니다.
“do result”블록은 무엇일까요??

지금까지 우리가 함수를 썼을 때는 반환값을 주지 않았습니다.
(반환값에 대해서 아직 알려드리지 않았지만 그렇다고 인정해 주세요.ㅋ)
우리가 원했던 동작을 함수 내부에서 다 진행하는 형식이였죠.
예를 들면 함수 안에서 전화를 건다거나 문자를 보냈었죠.
즉, 함수가 끝나면 함수 밖으로 결과물을 전해 줄 필요가 없었습니다.(함수 안에서 모든 일을 다 처리 했으므로!)
(아래 사진은 SOS 앱에서 만들어본 함수 입니다. 함수 밖으로 무언가를 내줄 필요가 없었어요)

하지만 이번에 쓴 함수는 자동으로 List를 만들어주는 기능을 합니다.
즉, 이 함수의 역할은 List를 만드는게 임무입니다.
그런데 함수 안에서 List를 만들기만 하면 뭐합니까. 다 만들었으면 쓸 수 있도록 함수 밖으로 결과물을 전해줘야죠.

이 기능을 함수 내부에서 지역변수(local variable)와 “do result” 블록을 사용하여 구현할 수 있습니다.
"do result" 블록이 함수와 결합되면 함수 내부에서 만든 결과물을 함수 밖으로 건네줍니다. 보통 return 값이라고
이야기 합니다만 앱인벤터에서는 result라고 이야기 하군요.
즉, 함수 내부에서 처리된 결과값을 밖으로 전달해 줄 때, do result블록을 사용합니다.

한번만 더 함수의 반환값에 대해 정리를 하자면

1. 함수 내부에서 처리한 결과물을 전달할 때 사용한다.
2. 함수 안에서 지역변수(local variable)를 만든다. 결과물을 담기 위해서.
3. do result블록을 사용한다. result 부분에 결과값이 들어간다.

자 이제 아래 사진에서 한번 더 봐봅시다.

아래 사진의 "call ImageReader"블록이 보이시죠?
이 블록 왼쪽의 "select list item"블록으로 함수 내부에서 만든 list 결과값을 반환(return)하는 거죠.

요약

이제 드림코드 시즌1 앱인벤터가 정말 끝이 났습니다.
부족한 부분이 정말 많았지만... 정말 노력했어요.ㅜㅜ
여러분께도 많은 도움이 되었으면 좋겠습니다. 같이 봐주시고 응원해 주셔서 감사합니다.
또 정말 많은 분들이 제작을 도와주셨습니다.
정말 감사합니다!
그럼 드림코드 시즌1 앱인벤터를 마치도록 하겠습니다.
여러분 안녕히 계세요!

댓글