[TIL] 2022-06-03 Dart Language - #11

Jongdroid·2022년 6월 3일
1

TIL

목록 보기
11/24
post-thumbnail

오늘은 다트언어를 학습했습니다.

var, dynamic, 문자열 보간법, final, const 4개의 키워드를 메인으로 글을 작성하겠습니다!

시작전

인텔리제이로 자바를 해보신분은 아실거라고 생각합니다. 자바에서 출력문은 상당히 코드가 지저분하다고 생각합니다. sop!!
다트에서 출력은 print() 함수를 통해 간략하게 사용할 수 있습니다.

또한 문자열을 사용하실때 ""(쌍 따옴표)를 사용하지 않고 ''(싱글 따옴표) 를 사용하시면 됩니다!
자바와 비슷하게 모든 코드의 끝은 세미클론으로 마무의리 해줍시다.


Variable Type

자바에서는 var키워드가 없었습니다. var은 선언한 데이터형을 통해 데이터타입을 자동으로 결정합니다.
runtimeType을 통해 이를 증명할 수 있으며, 하단 이미지의 결과값은 String이 출력됩니다.

var name = 'jongdroid';
print(name.runtimeType); // String

> 잠깐만요❗️❗️ 그럼 모든 변수를 var로 선언하면 되겠네요~~ 꿀이네요~~

아닙니다. 대부분의 코드라인은 매우 긴 편입니다. 또한 상대방이 코드를 보았을때 즉각 이해를 도우려면
정확한 데이터타입 명시를 권장합니다.

var은 초기에 선언한 데이터 타입과 다른 데이터 타입을 바꿀 수 없습니다.

var name2 = 'jongdroid2';
name2 = 5; //(Error)

dynamic

var과 같은 기능을 하지만 다른점이 있습니다.
var은 초기에 선언한 데이터 타입과 다른 데이터 타입으로 바꿀 수 없다고 하였습니다.
dynamic은 초기에 선언한 데이터 타입과 다른 데이터 타입으로 바꿀 수 있습니다.

dynamic name3 = 'jongdroid3';
name3 = 5;
print(name3);

문자열 보간법

문자열 보간법은 $ , ${} 이렇게 두 종류의 키워드로 나눠집니다.
예시를 먼저 볼까요?

  1. 변수만 참조하는 경우
// $변수명을 통해서 사용할 수 있습니다.
String userName = 'dart';
print('$userName'); //dart
  1. 변수를 통해 무언가 행위가 일어나는 경우
String userName = 'dart';
print('${userName.runtimeType}'); //String

final VS const

(const 이놈이 아직도 좀 헷갈립니다)

  • final과 const 모두 변수 값을 바꿀 수 없습니다.
  • final과 const는 var 기능까지 합니다. (데이터 타입 명시X)
// 같은 코드 입니다.
final String name = 'jongdroid';
final name2 = 'jongdroid2'

final과 const의 차이점[중요]

  • const는 빌드타임에 값을 알고 있어야 한다.
  • 빌드타임 ?????
    [예시]
const DateTime now = DateTime.now(); //에러발생 --> 시간을 가져오는 함수로 빌드되는 타임에 값을 모른다.

final DateTime now = Datatime.now(); //빌드타임에 상관없이 사용가능
  • 현재 시간을 불러오는 해당 코드는 지금 즉시 시간을 불러오는 것이 아니라 코드가 한 줄씩 실행되면서
  • 해당 함수가 실행되었을 때 시간을 가져온다. = 즉, 값이 무엇인지 아직은 모르는 상태를 의미한다.

const
문자열보간법은 조금 더 학습이 필요하겠다 jongdroid!!

profile
만드는 사람이 수고하면 쓰는 사람이 편하고 만드는 사람이 편하면 쓰는 사람이 수고롭다.

0개의 댓글