지역 선언

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


■ 중첩된 루틴

함수 및 프로시저는 블럭의 지역 선언 영역에 다른 함수나 프로시저를 포함할 수 있습니다
(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 21585
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 20216
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 22270
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 28018
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 29304
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 24630
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 45559
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 181079
143 [발표자료] What's NEW! RAD Studio 10.2 도쿄 험프리 2017.04.13 427
142 [UX Summit 요약] 레거시 데스크탑 앱 UI/UX 현대화 – 이론부터 실제까지 (Legacy desktop apps UI & UX modernization. From theory to practice) 관리자 2020.11.04 426
141 [10.3 리오][업데이트 3] iOS 13, 맥OS 카탈리나 지원을 시작하세요. file 관리자 2019.11.22 426
140 [10.4 시드니][업데이트 1] 델파이 코드 인사이트 새로운 기능 관리자 2020.09.10 424
139 [도서/PDF] 한 번에 개발하는 안드로이드&iOS 앱 with 델파이 1편 - 5장. UI 컨트롤 기본 사용법 관리자 2020.02.04 424
138 [발표자료] 20191017 실전 사례로 살펴보는 소프트웨어 현대화 전략 file 관리자 2019.10.23 424
137 [10.2 도쿄][릴리즈2] FireMonkey 퀵에디트로 주요 속성을 시각적으로 빠르게 설정할 수 있습니다. file 험프리 2017.12.13 424
136 [고객사례-유틸리티, 델파이] ExBox 관리자 2020.02.19 421
135 '눈에 확 띄는' 리눅스 앱을 만들고 싶다면 - Amakrits 스타일 관리자 2019.09.09 421
134 유투브(YouTube)와 워드프레스(WordPress)를 엔터프라이즈 커넥터로 연동해 활용하기 관리자 2019.08.21 421
133 인터베이스와 FireDac에서 배열필드 사용하기 file 김원경 2020.04.16 419
132 윈도우 버전 점유율 변화: 2009년부터 2019년 현재까지! file 관리자 2019.11.18 419
131 [10.2 도쿄][릴리즈3] CMake 커맨드 라인 지원 관리자 2018.03.30 419
130 [3분 완성] C++로 안드로이드&iOS 용 사진공유앱 완성하기 관리자 2019.08.14 418
129 플루언트 디자인 시스템으로 애플리케이션 현대화하기 관리자 2021.04.08 417
128 [도서/PDF] 한 번에 개발하는 안드로이드&iOS 앱 with 델파이 1편 - 4장. 다양한 UI 콘트롤 살펴보기 관리자 2020.02.04 416
127 이 달의 기술자료 - 2016년 10월 file 험프리 2016.09.30 416
126 RAD스튜디오 로드맵 (2020.11) 관리자 2020.11.18 415
125 [고객사례-유틸리티, 델파이] SyncBackPro - 데이터 백업/동기화 솔루션 관리자 2020.02.04 415
124 현대화 작업, 바로 지금이 골든타임입니다! 관리자 2019.09.11 415