상세 컨텐츠

본문 제목

다트 언어 문법 학습

공부/언어

by dofury 2022. 12. 22. 17:22

본문

728x90

플러터 환경에서 다트언어를 통해 어플리케이션을 개발하기 전에 문법을 익히고자 학습하였습니다.

새롭게 알게된 내용 위주로 적었습니다.


var 변수이름;
dynamic 변수이름;

var 와 dynamic 모두 변수타입을 알아서 적용함

var는 최초 값으로 타입이 고정되지만 dynamic은 타입이 고정되지 않음


final (변수타입) 변수이름
const (변수타입) 변수이름

둘 다 값을 바꿀수 없음

const는 빌드 초기에 값이 정해져야하지만 final은 그렇지 않아도 됨

 

변수 타입을 생략해도 var과 동일하게 적용함

 


 

String? 변수이름;

String 타입에 null을 허용함

 

String! 변수이름;

String 타입에 null을 허용하지않음

 

변수이름 ?? = 10;

해당 변수가 null 일경우 10을 넣음

 

'x : $x'

$를 통해 x라는 이름에 변수를 ' ~ ' 안에서 쓸수있게해줌

응용

'${x.value()}'

 


List<타입> 변수이름 = [값,값,값...];

 

Map<키 타입, 값 타입> 변수이름 = {

'키' : '값',

'키' : 값,

};

키를 통해 값을 찾을수 있음, 키와 값이 쌍을 이루는 타입

 

Set<타입> 변수이름 = {

값,

값,

값,

};

중복된 값을 자동으로 제거해주는 타입

 

enum 이름 {

이름,

이름,

이름,

}

한정된 값이 있을때 명시적으로 사용하기 좋음


for(int number in numbers)

for문에서 numbers 안에 요소를 number에 하나씩 받게 가능

 

continue;

현재의 반복문을 넘어감

 


함수에서 없어도 되는 매개변수(파라미터) 선언

함수이름(int x, [int y = 기본값, int z = 기본값])
{ 내용 }

[ ] 안에 매개변수는 필수가 아님

 

함수에서 순서가 상관없는 파라미터 선언

(반환타입 void 일시 생략 가능) 함수이름(
{
required 변수타입 x,
required 변수타입 y,
}
)
{내용}

함수이름(x: 10,y: 20)

화살표 함수(arrow function)

int addNumbers(int x,
{
required int y,
int z = 30,
}) => x + y + z;

=> 반환되는 값


typedef Operation = int Function(int x, int y, int z);
* 반환 타입과 매개변수 형태가 같음 함수를 집어넣을수 있음

ex)
int add(int x, int y, int z) => x + y + z;
int calculate(int x, int y, int z, Operation operation) => operation(x,y,z);
calculate(10,20,30,add);

다트 언어의 경우 클래스 = (new) 클래스();

형태에서 new를 생략이 가능하다.

 

생성자(this.변수이름,this.변수이름);

형태로 선언시 생성시 바로 해당변수에 값이 들어간다.

 

클래스.fromList(List value)
: this.members = values[0],
this.name = values[1];

형태로 생성자의 매개변수를 다양하게 만들어줄수있음

 

생성자를 const로 만들어줄시 두 클래스 내용이 같으면 클래스a == 클래스b는 True가 나옴

 

getter/setter

 

반환 타입 get 이름{ retun 반환 값};

(void) set 이름 {this.이름};

 

print(클래스.이름) /getter

클래스.이름 = 값 /setter

 

private 

ex) class _이름

 

상속 

class 클래스a extends 클래스b{
클래스a(
String name,int memberCount,):
super(
name: name,
memberCount: memberCount,
}

static

instance에 귀속되지 않고 class에 귀속된다.

 

인터페이스(interface)

dart 언어에서는 클래스를 사용함

 

클래스 이름 implements 인터페이스이름

 

인터페이스에 인스턴스화를 막기위한 키워드

abstract class 인터페이스이름

{

내용

}

 

class 이름<T>{
final T id;

이름(this.id);
}

이름<String> 이름_ = 이름('123');

generic - 타입을 외부에서 받을 때 사용

728x90

'공부 > 언어' 카테고리의 다른 글

파이썬 중급(인프런) 학습 내용 정리  (0) 2023.07.08
javascript var, const, let 차이점 +(클로저)  (0) 2023.01.19
SQL 관련 학습  (0) 2023.01.03

관련글 더보기

댓글 영역