델파이 기본타입 헬퍼
자바 버전5부터 오토박싱 개념이 도입되어
기본타입을 마치 객체처럼 사용할 수 있도록 편리한 기능이 도입되었다.
델파이도 비슷한 기능을 제공하는데 아마 XE8부터인가?..
도입시점을 알 수 없지만.. 엠바카데로 델파이 위키를 보면 XE3부터 지원되는 듯한데..
(검색해봤으나, 시원히 알려주는 자료를 찾지 못했습니다 ㅠㅠ)
아무튼..
델파이 헬퍼는 class나 record에서 사용가능한데 이 주제는 냅두고..
기본타입에 대한 헬퍼만 소개하겠다
예전에는
var intValue: Integer;
begin
intValue:= StrToInt('100')
end;
라고 작성했지만 기본타입에 대한 헬퍼덕분에 아래처럼 사용이 가능하다.
intValue:= '100'.ToInteger;
객체를 이용하듯이 기본타입에 메소드를 호출이 가능하다
여기서 기본타입은
int, int64, string, double, extended, extended80등이 있다
TStringHelper만 보자면
class function ToInt64(const S: string): Int64; overload; static; inline;
class function ToSingle(const S: string): Single; overload; static; inline;
class function ToDouble(const S: string): Double; overload; static; inline;
class function ToExtended(const S: string): Extended; overload; static; inline;
class function LowerCase(const S: string): string; overload; static; inline;
class function UpperCase(const S: string): string; overload; static; inline;
등등의 메소드를 제공하며
var
s: String;
begin
'10'.ToDouble 이라던지
s.ToDouble이라던지 사용이 가능하다
end;
별거 아닌것 같지만 사용해보면 행복에 겨운 코딩이 가능하다.
하지만 행복도 잠시
열거형에선 안되며, 심지어 TDateTime도 지원하지 않는다?
열거혈까진 이해하겠지만.. 도대체 왜?? TDateTime은 지원하지 않지?
System유닛에 TDateTime = type Double;
이렇게 정의되서 그런가?
아니 아무리그래도.. 고생스럽더라도 TDateTime정도의 헬퍼는 만들어줄수 있잖아??
'Delphi > 문법' 카테고리의 다른 글
객체지향 언어로서의 오브젝트 파스칼 2편 (0) | 2021.06.07 |
---|---|
객체지향 언어로서의 오브젝트 파스칼 1편 (0) | 2021.06.04 |
델파이(Delphi) 디자인패턴(Design pattern) 4탄 (0) | 2021.06.01 |
델파이(Delphi) 디자인패턴(Design pattern) 3탄 (0) | 2021.06.01 |
델파이(Delphi) 디자인패턴(Design pattern) 2탄 (0) | 2021.05.31 |
댓글