Typeof
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
`typeof`는 프로그래밍 언어에서 변수 또는 식의 데이터 유형을 나타내는 데 사용되는 연산자 또는 키워드이다. C, C#, VB.NET, JavaScript, TypeScript 등 다양한 프로그래밍 언어에서 사용되며, 각 언어별로 사용 방법과 기능에 차이가 있다. C에서는 컴파일 시점에 변수의 타입을 결정하는 데 사용되며, C#에서는 System.Type 객체를 얻는 데, VB.NET에서는 객체 참조 변수의 데이터 형식을 비교하는 데 사용된다. JavaScript에서는 런타임에 변수의 타입을 문자열 형태로 반환하며, TypeScript에서는 변수나 객체의 타입을 가져오는 데 사용된다.
C, C#, 비주얼 베이직 닷넷, 자바스크립트, 타입스크립트 등 C 계열 언어에서 `typeof` 연산자는 다양한 방식으로 활용된다.
자바스크립트에서 `typeof` 연산자는 변수의 타입을 판별하는 데 사용된다. 예를 들어, 다음 함수는 입력값이 숫자인지 확인한다.
2. C 계열 언어
자바스크립트에서 `typeof`는 변수의 타입을 문자열 형태로 반환한다. 예를 들어, 다음 코드는 변수 `n`이 숫자인지 확인한다.
```javascript
function isNumber(n) {
return ( typeof n === 'number' );
}
```
타입스크립트에서는 `typeof`를 사용하여 기존 객체의 타입을 참조하거나, 새로운 객체의 타입을 정의할 수 있다.[9]
```typescript
function (param: typeof existingObject) { ... }
```
```typescript
let newObject: typeof existingObject;
2. 1. C
C (프로그래밍 언어)의 비표준(GNU) 확장에서는 `typeof`를 사용하여 두 변수의 최댓값을 결정하는 일반 매크로를 정의할 수 있다.
```c
#define max(a,b) ({ typeof (a) _a = (a); typeof (b) _b = (b); _a > _b ? _a : _b; })
```
C23부터 `typeof`는 C 표준의 일부이다. `typeof_unqual` 연산자도 추가되었는데, 이는 cvr-qualification 및 atomic qualification을 제거한다는 점을 제외하면 `typeof`와 동일하다.[6][7]
2. 2. C#
csharp
// 주어진 객체가 정수인지 반환합니다.
// "is" 연산자를 사용하여 이를 확인할 수도 있습니다.
public static bool IsInteger(object o)
{
return o.GetType() == typeof(int);
}
```
C#에서 `typeof` 연산자는 주어진 형식의 `System.Type` 객체를 얻는 데 사용된다. `GetType()` 메서드는 객체의 형식을, `is` 연산자는 객체가 특정 형식인지 확인하는 데 사용된다. 위 코드는 `IsInteger` 메서드에서 `o.GetType() == typeof(int)`를 통해 객체 `o`가 정수형인지 확인하는 예시를 보여준다.[9]
2. 3. 비주얼 베이직 닷넷
VB.NET에서 "typeof"의 C# 변형은 VB.NET의 '''GetType''' 메서드로 변환되어야 한다. VB.NET의 '''TypeOf''' 키워드는 객체 참조 변수를 데이터 형식과 비교하는 데 사용된다.
다음 예제에서는 '''TypeOf...Is''' 식을 사용하여 두 객체 참조 변수의 다양한 데이터 형식과의 형식 호환성을 테스트한다.
vb.net
Dim refInteger As Object = 2
MsgBox("TypeOf Object[Integer] Is Integer? " & TypeOf refInteger Is Integer)
MsgBox("TypeOf Object[Integer] Is Double? " & TypeOf refInteger Is Double)
Dim refForm As Object = New System.Windows.Forms.Form
MsgBox("TypeOf Object[Form] Is Form? " & TypeOf refForm Is System.Windows.Forms.Form)
MsgBox("TypeOf Object[Form] Is Label? " & TypeOf refForm Is System.Windows.Forms.Label)
MsgBox("TypeOf Object[Form] Is Control? " & TypeOf refForm Is System.Windows.Forms.Control)
MsgBox("TypeOf Object[Form] Is IComponent? " & TypeOf refForm Is System.ComponentModel.IComponent)
3. 자바스크립트
function isNumber(n)
{
return ( typeof n === 'number' );
}
자바스크립트는 동적 타입 언어이므로, 변수의 타입은 런타임에 결정된다. `typeof` 연산자는 이러한 동적 타입 시스템에서 유용하게 활용될 수 있다.
3. 1. 타입스크립트
typescript
function (param: typeof existingObject) { ... }
```
```typescript
let newObject: typeof existingObject;
```
타입스크립트는 정적 타입 검사와 타입 추론을 제공하며, `typeof` 연산자는 이러한 기능과 함께 사용될 수 있다.[9]
참조
[1]
웹사이트
TypeOf Operator (Visual Basic)
https://msdn.microso[...]
[2]
웹사이트
typeof (C#)
https://msdn.microso[...]
[3]
웹사이트
Declarations - D Programming Language 1.0
http://digitalmars.c[...]
2012-12-30
[4]
문서
Typeof
https://gcc.gnu.org/[...]
Using the GNU Compiler Collection
[5]
웹사이트
Not-So-Magic - typeof(…) in C {{!}} r2
http://www.open-std.[...]
2021-12-02
[6]
웹사이트
N2927: Not-so-magic - typeof for C
https://open-std.org[...]
2022-02-02
[7]
웹사이트
Consider renaming remove_quals
https://www.open-std[...]
2022-02-06
[8]
웹사이트
Using 'typeof' to infer a type
https://learntypescr[...]
2022-01-28
[9]
웹인용
Using `typeof` to infer a type
https://learntypescr[...]
2022-01-28
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com