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
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 |