함수 선언

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

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 22591
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 21024
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 23082
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 28881
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 30050
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 25397
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 46348
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 182316
123 [동영상 강의] 델파이 기본 교육_18.부서관리 관리자 2012.08.03 5825
122 [델파이 문법] 프로시저와 함수 #4 file 관리자 2012.08.02 6144
121 [델파이 문법] 프로시저와 함수 #3 file 관리자 2012.07.31 6475
» [델파이 문법] 프로시저와 함수 #2 file 관리자 2012.07.27 7212
119 [동영상 강의] 델파이 기본 교육_17.인사관리(편집과차) 관리자 2012.07.25 6582
118 [델파이 문법] 프로시저와 함수 #1 file 관리자 2012.07.23 8697
117 [동영상강의] 델파이 기본 교육_16.인사관리 화면(연결과 조회) 관리자 2012.07.19 6576
116 [델파이 문법] 클래스와 객체 #21 file 관리자 2012.07.13 6769
115 3줄의 코드로 "움직이는 3D 컬러애벌레" 만들기 관리자 2012.07.12 6884
114 [동영상강의] 델파이 기본 교육_15.델파이와 DB연결과 dbExpress 관리자 2012.07.12 6854
113 [델파이 문법] 클래스와 객체 #20 file 관리자 2012.07.09 5477
112 [델파이 문법] 클래스와 객체 #19 file 관리자 2012.07.06 6383
111 [동영상강의] 델파이 기본 교육_14.메모장 만들기3 (스프래쉬 화면과 리포지토리) 관리자 2012.07.06 6176
110 델파이 튜토리얼 워크샵 발표자료_3D 프로그래밍과 라이브바인딩 file 관리자 2012.07.05 5952
109 델파이 아래 버전에서 XE2로 마이그레이션시 별도의 리소스 파일이 필요 없는 경우 관리자 2012.07.05 5516
108 [동영상강의] 델파이 기본 교육_13.메모장 만들기2 관리자 2012.07.04 6980
107 [델파이 문법] 클래스와 객체 #18 file 관리자 2012.07.02 6566
106 [동영상강의] 델파이 기본 교육_12.메모장 만들기 관리자 2012.06.29 7049
105 [델파이 문법] 클래스와 객체 #17 file 관리자 2012.06.28 6528
104 [델파이 문법] 클래스와 객체 #16 file 관리자 2012.06.26 6382