함수 선언

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

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 17806
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 16168
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 18820
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 24394
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 25778
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 21133
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 41718
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 177029
123 [다시보기] 소개합니다! FmxLinux - 델파이 파이어몽키 앱을 리눅스용으로 배포하기 관리자 2019.07.17 389
122 [발표자료] 20191017 실전 사례로 살펴보는 소프트웨어 현대화 전략 file 관리자 2019.10.23 388
121 [발표자료] 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio [2] 관리자 2017.06.26 388
120 [베를린 U2] 퀵에디트(Quick Edit) 메뉴 사용하기 (1분 동영상) 험프리 2016.11.15 388
119 이 달의 기술자료 - 2019년 12월 험프리 2019.12.05 387
118 [10.3 리오][업데이트 2] 멋지게 업그레이드된 VCL 품질 관리자 2019.09.10 386
117 [고객 사례- 솔루션, 델파이] AlignMix - 시각화된 세일즈 관리 도구 관리자 2020.05.12 385
116 [10.2 도쿄][릴리즈2] FireMonkey 퀵에디트로 주요 속성을 시각적으로 빠르게 설정할 수 있습니다. file 험프리 2017.12.13 384
115 버전별 업데이트된 주요 기능들 (C++빌더6 / 델파이7부터 최신 버전까지!) 관리자 2021.01.29 383
114 이 달의 기술자료 - 2020년 12월 험프리 2020.11.26 381
113 이 달의 기술자료 - 2019년 11월 file 험프리 2019.10.25 381
112 [엠바카데로 Feature Friday]10.3.1에서의 iPhone X, iPad Pro 해상도 지원 관리자 2019.03.21 381
111 이 달의 기술자료 - 2019년 10월 험프리 2019.09.27 380
110 [10.2 도쿄][릴리즈3] CMake 커맨드 라인 지원 관리자 2018.03.30 380
109 MS와 엠바카데로 기술팀이 생각하는 윈도우 애플리케이션의 방향 관리자 2020.01.07 379
108 [발표자료] 20171117 델파이/C++빌더 제조/제어 개발 세미나 관리자 2017.11.20 379
107 InstallAware - VCL 애플리케이션을 윈도우용 설치 파일로 생성 file 관리자 2020.08.28 378
106 '눈에 확 띄는' 리눅스 앱을 만들고 싶다면 - Amakrits 스타일 관리자 2019.09.09 377
105 [고객사례-유틸리티, 델파이] SyncBackPro - 데이터 백업/동기화 솔루션 관리자 2020.02.04 376
104 윈도우용 네이티브 앱 개발: 왜 중요할까요? 관리자 2020.01.07 374