함수 선언

함수 선언은 리턴 타입과 리턴 값을 지정하는 것을 제외하면 프로시저 선언과 비슷합니다.
함수 선언의 구조는 다음과 같습니다.

1.png

여기서, functionName은 유효한 식별자이고, returnType은 타입 식별자이며,
statements는 함수가 호출될 때 실행되는 일련의 문장이며, parameterList, directives,
localDeclarations는 옵션입니다.
함수의 문장 블럭에는 프로시저에 적용되는 것과 같은 규칙이 적용됩니다. 문장 블럭에서 함
수의 localDeclarations 부분에서 선언된 변수와 다른 식별자, 파라미터 리스트의 파라미터
이름, 그리고 함수 선언이 속하는 유효 범위(scope) 내의 모든 식별자를 사용할 수 있습니다.
확장 문법이 활성화된 상태에서는({$X+}), 모든 함수에서 Result가 암시적으로 선언됩니
다. Result를 다시 선언하려고 하지 마십시오. 예를 들면,

2.png

위 코드는 파라미터가 없고 항상 정수값 17을 리턴하는 WF라는 상수 함수를 정의합니다.
이 선언은 다음과 동일합니다.

3.png

다음과 같이 더 복잡한 함수 선언도 있습니다.

4.png

값의 타입이 선언된 리턴 타입과 일치하기만 하면, 문장 블럭 내에서 Result 혹은 함수 이름
에 값을 여러 번 대입할 수 있습니다. 함수의 실행이 종료되면 Result 혹은 함수 이름에 마
지막으로 대입된 값이 그 함수의 리턴값이 됩니다. 다음은 함수 내에서 리턴 값을 다루는 예
입니다.

5.png

Result와 함수 이름은 항상 같은 값입니다. 따라서,

6.png

위 코드는 값 11을 리턴합니다. 그러나 Result가 완전히 함수 이름으로 대체 가능한 것은
아닙니다. 함수 이름이 대입문의 왼쪽에 나타나면 컴파일러는 함수 이름이 Result처럼 리턴
값을 기록하는 데 사용되고 있다고 이해합니다. 그러나 함수 이름이 문장 블럭의 다른 곳에
서 나타나면 컴파일러는 함수 이름을 그 함수 자체의 재귀 호출로 해석합니다. 한편, Result
는 연산, 타입 캐스트, 집합 생성자, 인덱스, 다른 루틴 호출 등에서 변수처럼 사용될 수 있
습니다.
Result나 함수 이름에 값을 지정하지 않은 상태로 함수의 실행이 종료되면 그 함수의 리턴
값은 정의되지 않습니다.

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 14387
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13023
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 15532
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 21064
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 22297
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 17933
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 38228
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 173741
110 Developer Direct LIVE! 모바일 썸머 스쿨!! 관리자 2013.07.06 2951
109 [기술백서] 모바일로 가면서 개발자가 하게 되는 실수 TOP5 (한글) 관리자 2013.07.06 4314
108 TListView iOS 샘플 제공 관리자 2013.06.28 4023
107 아이폰, 아이패드, 아이팟 앱 개발을 위한 파이어몽키 용 TMS 컴포넌트가 출시되었습니다. 관리자 2013.06.04 3783
106 IOS 앱을 개발하여 App Store에 등록하는 방법 관리자 2013.05.20 5399
105 델파이XE4로 아이폰, 아이패드, 윈32, 윈64, 맥OS X 단일 소스코드 베이스로 2분만에 개발 관리자 2013.05.13 5599
104 Delphi XE4에서 iOS 개발 환경 구축시 유의 할점. c2design 2013.05.11 5381
103 [웹세미나 안내] 델파이를 활용한 멀티-디바이스 앱 개발 관리자 2013.03.29 4634
102 멀티-티어 작업을 더욱 쉽게 만들어주는 Class Helper 관리자 2013.03.26 4999
101 델파이로 간단하게 슬라이드 효과를 적용한 iOS앱 만들기 관리자 2013.03.26 4953
100 [델파이 문법] 데이터 타입, 변수 및 상수 #4 file 관리자 2013.02.19 6364
99 [델파이 문법] 데이터 타입, 변수 및 상수 #3 file 관리자 2013.02.13 6729
98 [델파이 문법] 데이터 타입, 변수 및 상수 #2 file 관리자 2013.02.04 8214
97 [델파이 문법] 데이터 타입, 변수 및 상수 #1 관리자 2012.12.25 6978
96 [델파이 문법] 문법 요소 #15 file 관리자 2012.12.25 5386
95 델파이/C++빌더/RAD Studio XE3 업데이트1 다운로드 및 보완사항 리스트 관리자 2012.12.21 5191
94 [델파이 문법] 문법 요소 #14 file 관리자 2012.12.17 5352
93 [웹 세미나] RAD 따라잡기: 윈도우8 스타일 관리자 2012.11.27 4487
92 CodeRage7 : '델파이' 다시보기 관리자 2012.11.24 5259
91 [델파이 문법] 문법 요소 #13 file 관리자 2012.11.20 6104