Operators
https://dart.dev/guides/language/language-tour#operators
swift 에서는 빠진 ++, -- 가 아직 제공된다.
~/ 라는 연산자가 있다.
나누기를 한 후 결과값을 integer 형태로 돌려준다. 이건 좀 편하겠는데?
두 object 가 같은지는 identical 함수로 안다고 한다.
Type test operators
as, is 는 흔히 있는 거라 패스
is! 라는 것이 있다. is not 일까? 라고 생각했는데 맞네 .
Assignment operators
= 는 거의 대부분 다 쓰니 패스
??= 라는 생소한 것이 있다
a ??= 1 이라고 하면 a 가 null 이면 1을 대입하고 아니면 a 를 유지한다고 한다.
var a = 1
a ??= 2 // a는 여전히 1
var b = null
b ??= 2 // b는 2
Conditional expressions
a ? b : c 이런 형식은 많이 봤고...
a ?? b 이런 것이 있다. swift 와 동일하다 a 가 null 이면 b, 아니면 a
Cascade notation (..)
이건 이전 글에서 했다.
2020/07/20 - [Programming/Dart] - Dart 1일 차 - Language Tour
Dart 1일 차 - Language Tour
오늘부터 Dart를 하루에 조금씩 공부해보려 한다. 하루에 특정 챕터를 하지 않고 시간 되는 만큼만 본다. 보면서 바로 여기 블로그에 정리하면서 본다. 그러므로 앞으로의 내용은 정리되지 않은..
yoonhg84.tistory.com
Other operators
(), [], . 은 흔히 생각하는 것 이다.
?. 는 swift 에서 optional chain 할때 사용하는 것과 같은듯?
Control flow statements
https://dart.dev/guides/language/language-tour#control-flow-statements
if, for 는 동일하다.
forEach 가 있는데 swift forEach 와 유사한 형태다
iterable 을 이용해서 간단하게 for를 사용할 수 있다. 이것도 swift 와 같네
while, do while 도 많이 봤고
break, continue 도 같네
예제에서 forEach 와 같이 where 이 나오는데.. 이건 swift 의 filter 와 같은 듯
Switch and case
비교할 object 는 모두 같은 class 의 instace 여야 한다.
class 는 == 를 오버라이드 하면 안된다.
swift 랑 다르게 이전 언어들 처럼 case 마다 break 를 써줘야 한다.
case 에 코드가 있는 상태에서 break 를 안 쓰면 error 가 발생하네?! 좋은데?!
만약 다음 case 와 함께 처리하고 싶은 경우 case 의 내용이 비어 있어야 에러가 발생하지 않는다.
코드가 있는 상태에서 다음 case 로 넘어가는 fall-through 를 하고 싶다면... continue 에 label 을 지정해서 할 수 있다. (goto 가 생각나네... 이건 왜... 도대체....)
Assert
많이 사용해본대로 boolean 값으로 유효성 확인을 할 수 있다.
Exceptions
dart 도 thorw, catch 등이 제공된다.
자바와 다르게 함수에 throw 할 exception 을 지정하지 않아서 어떠한 exception 도 처리가 가능하다.
Exception, Error type 이 있으며 많은 subtype 이 있다.
우리가 subtype 을 구현할 수도 있다.
null object 는 throw 할 수 없다.
Catch
catch 구문이 좀 다르다.
특정 exception 을 지정할때는 on 키워드를 사용하고
catch 는 exception object 를 받을 때 사용한다 on 키워드와 함께 사용도 가능하다.
catch 는 두개의 parameter 를 가질 수 있는데 첫번째는 exception, 두번째는 stack trace 이다.
rethrow 로 처리하지 못한 exception 을 caller 에게 넘길 수 있다.
finally 도 많이 보던거다.
'Programming > Dart & Flutter' 카테고리의 다른 글
Dart 6일 차 - Language Tour (6/7) (0) | 2020.07.25 |
---|---|
Dart 5일 차 - Language Tour (5/7) (0) | 2020.07.25 |
Dart 4일 차 - Language Tour (4/7) (0) | 2020.07.24 |
Dart 2일 차 - Language Tour (2/7) (0) | 2020.07.21 |
Dart 1일 차 - Language Tour (1/7), A basic Dart program (0) | 2020.07.20 |