일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Spring
- linux
- springboot
- React
- webhook
- nodejs
- docker
- error
- Github Actions
- ngrok
- axios
- TypeScript
- Jenkins
- Express
- 500
- Java
- RDS
- AWS
- macbook
- javascript
- MongoDB
- MUI
- AWS EC2
- deploy
- python
- fastapi
- EC2
- github
- Troubleshooting
- js
- Today
- Total
BEAT A SHOTGUN
[Dart] flutter 를 위한 Dart 공부 1 본문
flutter 를 위해 Dart 를 공부해봅시다.
Java 와 매우 흡사합니다.
기본 문법
;
필수
+
-
/
*
나머지 %
print
1 더하기 할 때 number ++;
가능
다른 숫자 더하기는 number += 2;
해도 됨
역시 언어들은 매우 비슷하다.
확인A is B;
A is! B;
not 은 없는 듯
and &&
or ||
list 정의할 때는 안에 들어가는 속성의 타입을 지정합시다.List<String>
List<int>
...
list 의 길이 listA.length
list 에서 속성 지우기 listA.remove
list 에서 속성의 인덱스 listA.indexOf("A")
변수 타입 인쇄, 확인
변수 선언 var
하지만 정수 선언은 int
실수 선언은 double
, 문자는 String
알아서 int 로 바꿔주는 군요
타입 인쇄: type print 는
runtimeType
타입 확인: type check is
is 타입
is! 타입
또는!= 타입
== 타입
해도 됨
하지만Try changing one or both of the operands
라는 안내가 나옴
하지만 int 로 선언해서 string 을 넣으면
에러가 나는 군여
int 에 double 을 넣으면?
타입은 웬만하면 정확하게 해줍시다 js 꼴나기싫으면.
dynamic
?
다양한 타입을 넣어도 되는 dynamic
.
ts 의 any
같은 건가
명확하게 var int double 처럼 타입을 지정해줬다면
에러가 납니다
또한 dynamic
은 null 도 가능한 것이 정말 any
같음.
다른 건 안됨.
? nullable
하지만 타입을 명확하게하면서 null 을 쓰고싶다
하지만 var?
는 안됨. 타입이 명확하지 않잖슴 ;
??
A ?? = 20;
A 가 null 이면 20 으로 바꿔라.
null 이 아니면 바뀌지 않음
null 이면 바뀜
변수 확정 그런데 타입을 곁들인
const
final
var 처럼 변수 타입을 지정하지 않아도 알아서 타입을 넣어줍니다.const
final
로 선언한 뒤엔 변경할 수 없습니다.
DateTime 타입
시간 타입 DateTime
. 코드가 실행된 시간인 now()
하지만 DateTime 에서 final
와 const
는 다릅니다.const
는 DateTime.now()
가 안 돼요.
print 하면서 변수 넣기
백틱 을 쓰지 않고 ' 따움표만 해도 가능
Map
dictionary 처럼 key value 를 따라 값을 넣을 수 있습니다.
addAll
을 이용해 두 딕셔너리를 합칠 수 있습니다.
하나의 값을 새롭게 넣고싶다면
그냥 넣으면 됩니다.
변경하고 싶다면 그냥 변경하면 됩니다.
지우고 싶으면 map.remove('지울거')
keys 만, values 만
값이 있는지 확인containsKey
containsValue
를 통해 값이 있는지 없는지 확인가능
bool 값으로 나옴
set
set
은 list 같지만 중복을 넣을 수 없습니다.
if 와 switch
if (조건) {결과}; else if (조건2) {결과2}; else{결과3};
switch(조건){
case 조건:
결과;
break;
case 조건2:
결과2
break;
default:
결과3
break;
}
break 안 해주면 모든 case 를 돌아버림.default
는 if 문의 else 같은 것
for 문
dartpad 제일 처음 시작하면 적혀있는 게 for 문이었군
for in 문
for( int i in listA ){
print(i);
}
라고 할 수도 있음.
루프돌다가 if 와 함께 continue
를 넣으면 해당 loop
만 건너뜀
이쯤 되니 모든 언어의 짬뽕이 아닐까 싶음
while 문
while
enum 을 사용해 값이나 변수를 제한해보자.
enum 을 이용해 들어가야할 값과 변수를 제한해봅시다.
이렇게 해도 되지만
오타났을 경우를 대비하기도 하고.
함수에서 넣어도 되고 안 넣어도 되는 파라미터?
funcA ( String name, int age) {
print(name)
print(age)
}
optinal parameter
하지만 age 는 없어도 사용하고 싶다?[]
대괄호를 해주자.
근데 없어도 되면 null이 되는 변수여야하잖슴. dynamic
을 써도 되지만 타입을 명확하게 하고 싶다?
nullable ?
funcB ( String name, [int? age]){
print('$name, $age')
}
null 이면 안 된다?
혹은 계산에서 필요하다??[]
안에서 기본값을 지정해주자.
기본값이 있을 때 내가 값을 넣으면 당연히 내가 넣은 값이 파라미터로 들어감.
순서 상관없이 넣고싶다?
그럼 required 이름
optional parameter
required
를 지우자.
지우면 null 값이 들어갈 수 있다는 것으로. type 을 제대로 지정하지 않으면
에러로 혼내준다.?
로 null 도 가넝한
함수의 반환 타입 지정?
이렇게 함수에 타입을 지정해주지 않아도 되지만.
타입을 지정해주면 조금 더 명확한 함수를 만들 수 있다.
Arrow function 화살표함수
이거 완전 js 아니냐
바로 return 되는 것이 특징
typedef, Operation
아니 이거 완전 c 아니냐
calculator 라는 함수를 만들어서 Operation
을 조금 더 실용적으로 사용할 수 있다!
void main(){
print(10,20,add); // 30
print(10,20,subt); // -10
}
typedef Operation = int Function(int x, int y);
int add(int x, int y) => x+y ;
int subt(int x, int y){
return x-y;
}
int calculator(int x, int y, Operation operation){
return operation(x,y);
}
'LEARNING' 카테고리의 다른 글
[Django] 소셜 로그인 - allauth (0) | 2023.07.02 |
---|---|
[Linux] 이 정도면 근본임? (1) | 2023.04.25 |
[R] R 설치와 R 스튜디오 설치 및 간단 사용법 - R 의 시작 (0) | 2023.03.26 |
[FastAPI] main 에 때려박은 user 관련 API 분리하기(feat. FastAPI 공식 Docs) (0) | 2023.02.09 |
[FastAPI] MongoDB 와 연결해 CRUD api 만들기 (0) | 2023.02.07 |