지역 선언

함수나 프로시저의 바디 부분은 루틴의 문장 블럭에서 사용할 지역 변수들의 선언으로 시작
하는 경우가 많습니다. 이런 선언에는 상수, 타입 및 기타 루틴도 포함합니다. 로컬 식별자
의 유효 범위는 그 식별자가 선언된 루틴으로 제한됩니다.


■ 중첩된 루틴

함수 및 프로시저는 블럭의 지역 선언 영역에 다른 함수나 프로시저를 포함할 수 있습니다
(nested routine). 예를 들어, 다음의 DoSomething 프로시저의 선언에는 중첩된 프로시저
가 포함되어 있습니다.

1.png

중첩 루틴의 유효 범위는 루틴이 선언된 프로시저 또는 함수로 제한됩니다. 위 예제에서
NestedProc은 DoSomething 내에서만 호출될 수 있습니다.
중첩 루틴의 실제 예제를 보려면 SysUtils 유닛에 있는 DateTimeToString 프로시저,
ScanDate 함수 등을 살펴보십시오.


파라미터

대부분의 프로시저 및 함수 헤더에는 파라미터(parameter) 리스트가 있습니다. 예를 들어,

2.png

위의 헤더에서, 파라미터 리스트는 (X: Real; Y: Integer)입니다.

파라미터 리스트는 세미콜론으로 구분하고 괄호로 묶은 일련의 파라미터 선언입니다. 각 선
언에서는 콤마로 구분된 파라미터 이름과 뒤이어 대부분 콜론과 타입 식별자가 나오며, 어
떤 경우에는 = 기호와 기본값이 오기도 합니다. 파라미터 이름은 유효한 식별자여야 합니
다. 선언 앞에는 예약어 var, const, out 중 하나가 있을 수 있습니다. 예를 들면, 다음과 같
습니다.

3.png

파라미터 리스트는 루틴이 호출될 때 전달되어야 할 파라미터의 개수, 순서와 타입을 지정
합니다. 루틴에 파라미터가 없다면 선언에서 식별자 리스트와 괄호를 생략하십시오.

4.png

프로시저 또는 함수의 바디 내에서, 파라미터 이름(위 첫 번째 예제의 X와 Y)은 지역 변수
로 사용할 수 있습니다. 파라미터 이름을 프로시저나 함수 바디의 지역 선언 영역에서 다시
선언하지 마십시오.


파라미터 의미 구조

파라미터는 다음과 같은 방법으로 분류됩니다.

  - 모든 파라미터는 값, 변수, 상수, 출력 파라미터로 분류합니다. 기본은 값 파라미터며, 예약어
var, const, out은 각각 변수, 상수, 출력 파라미터를 나타냅니다.

  - 값 파라미터는 항상 타입이 지정되며, 상수, 변수, 출력 파라미터는 타입을 가질 수도 가지지
않을 수도 있습니다.

  - 배열 파라미터에는 특수한 규칙이 적용됩니다. 5장의“배열 파라미터”를 참조하십시오.

파일과 파일을 포함한 구조 타입의 인스턴스는 변수 파라미터(var)로만 전달할 수 있습니다.
번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15441
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13962
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16499
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22055
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23268
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18923
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39257
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174713
130 XE7에서 추가 된 안드로이드 프로젝트에서 외부 라이브러리(jar) 사용을 위한 정보 [1] Humphery 2014.11.03 3224
129 8단계로 완성하는 "2014년 출시 앨범" 앱 개발 따라하기 [1] file Humphery 2014.10.07 3658
128 [온라인 세미나 발표자료] RAD Studio XE7! 관리자 2014.09.17 1641
127 [기술문서] 델파이와 유니코드 관리자 2014.09.16 1936
126 [기술문서] 델파이XE2와 파이어몽키 관리자 2014.09.16 1657
125 [기술문서] Delphi 코딩 스타일과 아키텍처(Delphi 2009의 언어 기능 리뷰) 관리자 2014.09.16 1536
124 [Step UP! 마이그레이션] RAD 업그레이드 마이그레이션 기술 브리핑 자료(2014.8.21) 관리자 2014.08.22 1995
123 델파이를 이용해 구글크롬캐스트와 연결 Humphery 2014.07.22 2620
122 델파이 물리엔진 Box2d 소개. FMX, VCL 용(오픈소스) [1] Humphery 2014.04.22 4181
121 [XE5만의 특별한 기능] 응답하라! Delphi VCL 개발자 관리자 2013.12.21 4890
120 Runtime Packages 옵션으로 프로그램(배포) 용량 줄이기 [4] file Humphery 2013.12.19 7766
119 ComPort(시리얼 통신) 컴포넌트 설치안내 [11] file 험프리 2013.12.04 107345
118 11월 26일 "RAD Studio XE5 따라잡기: 모바일 개발 퀵스타트 LIVE!" 발표자료입니다. file 관리자 2013.12.03 3596
117 엔터프라이즈 데이터 기반의 모바일 앱 과정(2일) 우선 등록 안내 관리자 2013.11.21 2720
116 델파이 안드로이드앱에서 jar 클래스 사용하기 file 관리자 2013.10.31 5328
115 Release Notes for XE5 Update 1 c2design 2013.10.29 3380
114 델파이1 부터 델파이XE5까지의 역사 관리자 2013.10.26 4684
113 iOS 7 앱 개발을 위한 XE5 업데이트 제공 안내 관리자 2013.10.15 3875
112 CodeRage 8: Delphi 온라인 무료 세미나 개최 관리자 2013.10.15 3362
111 iOS UI 디자인 (델파이XE4 활용) 관리자 2013.07.19 3783