DART

[DART] Dart의 기본 데이터 타입(1) (int, double, String) Built-in Types in Dart

예나부기 2022. 4. 13.

1) 숫자형 Numbers

Dart에서 숫자를 표현하는 데이터 타입은 2가지가 있으며, int와 double 모두 num 타입의 서브타입이다.

1. int 정수형

- Integer는 소수점(decimal point)이 없는 숫자를 가리키며, 아래와 같이 표현한다.

- 최대 크기는 플랫폼에 따라 다르지만, 64비트를 넘을 수 없다.

var x = 1;
var hex = 0xDEADBEEF;
var exponent = 8e5;

2. double 실수형

- IEEE 754표준에 따르면, double형은 64비트의 부동소수점 (floating-point numbers) 숫자를 가리킨다. 

var y = 1.1;
var exponents = 1.42e5;

 

*변수를 int, double이 아닌 'num'으로도 선언할 수 있으며, integer와 double value를 모두 담을 수 있다.

num x = 1; // x에는 int와 double 값을 모두 담을 수 있다.
x += 2.5;

 

- 정수형 리터럴은 필요하다면 double로 자동으로 변환된다. 1.0이나, 1이나 둘 다 double에 넣을 수 있다는 말이다.

double z = 1; //  double z = 1.0 과 같다

 

3. 숫자를 문자열로 변환, 문자를 숫자열로 변환 turn a string into a number, or vice versa.

// String -> int
var one = int.parse('1');

// String -> double
var onePointOne = double.parse('1.1');

// int -> String
String oneAsString = 1.toString();

// double -> String
String piAsString = 3.14159.toStringAsFixed(2);

 - String을 int로 바꿀 때는 int.parse('String문자열');

 - String을 double로 바꿀 때는 double.parse('String문자열');

 - int를 String으로 바꿀 때는 정수.toString();

 - double을 String으로 바꿀 때는 실수.toStringAsFixed(2)

  ** toStringAsFixed()는 소수점의 개수를 고정시킨다.

     예시의 경우 2라고 적혀있으니, 3.14 까지만 반한된다.

     잘 이해했는지 테스트해볼까? 

   

1.toStringAsFixed(3); 
(4321.12345678).toStringAsFixed(3);  
(4321.12345678).toStringAsFixed(5);  
123456789012345.toStringAsFixed(3);  
10000000000000000.toStringAsFixed(4); 
5.25.toStringAsFixed(0);

위의 코드를 출력하면 어떤 결과가 나올까?

정답은 이와 같다.

1.toStringAsFixed(3);  // 1.000
(4321.12345678).toStringAsFixed(3);  // 4321.123
(4321.12345678).toStringAsFixed(5);  // 4321.12346
123456789012345.toStringAsFixed(3);  // 123456789012345.000
10000000000000000.toStringAsFixed(4); // 10000000000000000.0000
5.25.toStringAsFixed(0); // 5

 

2) 문자형 Strings

- Dart에서 String은 작은따옴표 (''),큰 따옴표 ("") 모두를 사용해서 만들 수 있다.

var s1 = 'Single quotes work well for string literals.';
var s2 = "Double quotes work just as well.";
var s3 = 'It\'s easy to escape the string delimiter.';
var s4 = "It's even easier to use the other delimiter.";

 

- 또한, ${ } 표현을 사용해서 문자열의 중간에 값을 넣을 수 있다.

넣으려고 하는 것이 구분자라면, { } 를 생략하고 $만 쓸 수 있다. 

var s = '문자열 보간';
assert('Dart는 $s 기능이 있습니다.' ==  'Dart는 문자열 보간 기능이 있습니다.');
var s = 'string interpolation'; //문자열 보간
assert('That deserves all caps. '
        '${s.toUpperCase()} is very handy!' ==
    'That deserves all caps. '
        'STRING INTERPOLATION is very handy!');

 

- 문자열 끼리 결합하려면 +연산자 를 사용하거나, (자바와 동일)

var s2 = '+연산자를 쓰면 ' + '문장이 합쳐져요.';
assert(s2 == '+연산자를 쓰면 문장이 합쳐져요.');

- 문자열을 여러 줄로 출력하기 위해서는 작음따옴표 3번 ('''), 또는 큰따옴표 3번 (""")을 사용한다. multi-line

void main() {
  String s1 = ''' 
  multi-line
  문자열을
  만들어봐요.
  ''';
  
  print(s1);
  
  String s2 = """
 여러 줄의 String을
 '또는 "를 3번 써서
 합쳐봐요.
  """;
  print(s2);
}

>> 결과물

  multi-line 
  문자열을 
  만들어봐요. //결과 1
 

 여러 줄의 String을 
 '또는 "를 3번 써서
 합쳐봐요. //결과 2

- 문자열 앞에 r 을 붙여, raw String을 만들 수 있는데,  문자열에 특수문자(이스케이프 문자)를 쓰지 않고도

직관적으로 원하는 문자열을 보는 그대로의 문자열로 만들 수 있다.

var s = r'raw string에서는, \n 도 그대로 출력된다.';

댓글