타입 시스템 개요
hong-ik은 강타입 언어로, 모든 값은 명확한 타입을 가집니다.
지원 타입
| 타입 | 키워드 | 설명 | 예제 |
|---|---|---|---|
| 정수 | 정수 | 부호가 있는 64비트 정수 | 정수 x = 42 |
| 실수 | 실수 | 64비트 부동소수점 | 실수 pi = 3.14 |
| 문자 | 문자 | 유니코드 문자열 | 문자 s = "안녕" |
| 논리 | 논리 | 참/거짓 | 논리 flag = true |
| 배열 | 배열 | 동적 크기 배열 | 배열 arr = [1, 2, 3] |
| 사전 | 사전 | 키-값 쌍 | 사전 map = {"a": 1} |
| Null | (없음) | 빈 값 | 정수 x = 없음 |
기본 타입 상세
정수 (Integer)
hik
정수 x = 10
정수 음수 = -5
정수 큰수 = 1000000000범위: -2^63 ~ 2^63-1
실수 (Float)
hik
실수 pi = 3.14
실수 절댓값 = -2.5
실수 지수 = 1.23e-464비트 IEEE 754 부동소수점
문자 (String)
hik
문자 greeting = "안녕하세요"
문자 empty = ""
문자 escaped = "줄바꿈: \n탭: \t"문자열 보간:
hik
문자 name = "홍길동"
문자 message = "안녕 {name}님" // "안녕 홍길동님"논리 (Boolean)
hik
논리 참값 = true
논리 거짓값 = false배열 (Array)
hik
배열 빈배열 = []
배열 숫자배열 = [1, 2, 3]
배열 혼합배열 = [1, "문자", true]
배열 길이 = 길이(숫자배열) // 3
배열 첫원소 = 숫자배열[0] // 1
배열 마지막 = 숫자배열[-1] // 3사전 (Dictionary)
hik
사전 빈사전 = {}
사전 정보 = {"이름": "홍길동", "나이": 25}
사전 값 = 정보["이름"] // "홍길동"Null 타입
hik
정수 없는값 = 없음
논리 결과 = (없는값 == 없음) // true타입 변환
암시적 변환 (자동)
hik
정수 x = 10
실수 y = x // 자동으로 10.0으로 변환명시적 변환 (수동)
hik
문자 str = "42"
정수 num = 정수변환(str) // 42
정수 n = 100
문자 text = 문자변환(n) // "100"
문자 fstr = "3.14"
실수 f = 실수변환(fstr) // 3.14타입 확인
hik
정수 x = 10
문자 타입_문자 = 타입(x) // "정수"
문자 s = "hello"
출력(타입(s)) // "문자"타입 비교
hik
정수 a = 10
정수 b = 10
논리 같은가 = (a == b) // true
문자 s1 = "abc"
문자 s2 = "abc"
논리 문자같은가 = (s1 == s2) // true동작 안내
값 vs 참조
기본 타입(정수, 실수, 문자, 논리)은 값 타입이고, 컬렉션(배열, 사전)은 참조 타입입니다:
hik
정수 x = 10
정수 y = x
y = 20
출력(x) // 10 (x는 변경되지 않음)
배열 arr1 = [1, 2, 3]
배열 arr2 = arr1
추가(arr2, 4)
출력(길이(arr1)) // 4 (arr1도 변경됨)