Flutter - Dart 문법 (주석, 변수, 조건문, 반복문, 함수, 클래스)

반응형

 

이 포스팅은 다른 프로그래밍 지식이 어느정도 있다는 전제하에 문법을 쉽게 확인할 수 있도록 작성되었습니다.

프로그래밍이 처음이라면 자세히 설명된 포스팅을 함께 링크해둘테니 확인해주세요.

개념은 거의 동일합니다.


주석(Comments)

  • // : 슬래시 두번을 하면 해당 줄을 컴퓨터가 코드로 인식하지 않음
// 주석

변수(Variable)

변수 선언

  • 데이터타입 변수명 : 해당 데이터타입을 지닌 변수 선언
  • 데이터타입? 변수명 : 널 값도 들어올 수 있는 변수 선언
  • 변수 선언시 데이터타입의 종류
    • var : 처음 정의되는 변수의 데이터타입을 따라감
    • String : 문자
    • int : 숫자
    • const : 상수, 처음 설정한 값을 이 후 변경할 수 없음
    • final : 변수 정의 후 나중에 값을 저장할 수 있음
var variable;
var? variable2;

변수 네이밍 규칙

  • 영문과 숫자 사용, 단 숫자로 시작할 순 없음
  • 특수 기호는 언더바(_)와 달러($)만 허용

 

다른 프로그래밍 언어로 기초 개념 알기 - 자신이 익숙한 언어로 보면 이해가 편합니다!

더보기

조건문 (if)

  • 조건에 따라 코드를 실행할 수 있게 해주는 문법
  • 차례대로 조건을 확인하고 조건 만족시 이후 코드는 무시됨 (else if ~ else 부분)
if (조건) {
	// 조건에 맞을 경우 실행할 코드
}
else if (조건2) {
	// if의 조건과 맞지 않을 때 다음 조건(조건2)을 확인하고 해당 조건에 맞을 경우 실행할 코드
}
else {
	// 조건에 맞지 않는 모든 조건을 실행할 코드
}

 

다른 프로그래밍 언어로 기초 개념 알기


반복문 (for)

  • 특정한 코드를 반복해서 실행하도록 흐름을 제어하는 문법
  • for () 괄호 안에 시작값과 끝값, 스텝을 설정하여 반복의 정도를 지정할 수 있음
for (시작값; 끝값; 스텝;) {
	// 반복 실행할 코드
}

// 예시 1부터 5까지
for (int i=1; i<=5; i++) {
	// 코드 (i = 1,2,3,4,5)
}

// 예시 5부터 1까지
for (int i=5; i>=1; i--) {
	// 코드 (i = 5,4,3,2,1)
}

// 예시 1부터 5까지의 홀 수
for (int i=1; i<=5; i+=2) {
	// 코드 (i = 1, 3, 5)
}

 

다른 프로그래밍 언어로 기초 개념 알기


함수(Function)

함수 선언

  • 데이터타입과 함수명 그리고 매개변수가 필요할 경우 매개변수를 괄호 안에 기입
    • 데이터타입이 없으면 void
    • 매개변수가 없으면 괄호만 ()
데이터타입 함수명(매개변수) {
	// 실행 코드
}

// 예시 반환값이 존재하지 않고 매개변수가 필요하지 않은 함수
void testFunc() {
	// 실행코드
}

람다식 함수 선언 (Lambda Expression)

  • 람다 표현식을 쓰면 함수를 좀 더 축약해서 사용할 수 있음
함수명() => "반환값";

// 예시) 함수를 호출하면 "Hello World!" 를 반환하는 함수
testFunc() => "Hello World!";

함수 호출

  • 함수명()
  • 함수에 매개변수가 존재할 경우 매개변수를 같이 입력해주어야 함
함수명(매개변수);

 

다른 프로그래밍 언어로 기초 개념 알기


클래스(Class)

클래스 선언

  • 변수와 함수를 모아둔 집합체
  • 클래스는 대문자로 시작
class 클래스명 {
	// 코드
}

클래스 구성요소 

  • 속성(Property) : 클래스 내의 변수
  • 메소드(Method) : 클래스 내의 함수
  • 생성자(Constructor) : 클래스 명과 동일한 함수, 초기화를 위해 사용
class Bread {
	// 생성자 함수 (클래스명과 똑같음. 클래스의 객체가 생성될 때 호출되는 함수)
	Bread(String core) {
		content = core; // 전달 받은 core를 content에 넣어줍니다.
	}
	
	// Bread 클래스가 가진 content 속성 (클래스 내의 변수)
	String? content;

	// Bread 클래스가 가진 getDescription 메소드 (클래스 내의 함수)
	String getDescription() {
    return "맛있는 $content빵입니다."; // 맛있는 팥빵입니다.
  }
}

인스턴스(Instance)

  • 클래스의 속성과 메서드를 가진 객체
  • 인스턴스마다 독립된 공간을 가짐
void main() {
	Bread bread = Bread(); // Bread 생성자를 호출하여 인스턴스를 반환
	print(bread); // Instance of 'Bread'
}

class Bread {
	// 생성자
	Bread();
}

 

다른 프로그래밍 언어로 기초 개념 알기


클래스 상속(extends)

  • 부모(슈퍼) 클래스는 자신의 속성, 메소드들을 자식(서브) 클래스에게 전달할 수 있게 해주는 것
void main() {
	// 객체화
	Child child = Child();

	// 상속 받은 변수 출력
	print(child.txt); // Hello World!
}

// 부모 클래스
public class Parent {
	String txt = "Hello World!";
}

// 자식 클래스
public class Child extends Parent{
	// 코드
}

 

 

다른 프로그래밍 언어로 기초 개념 알기


참고

반응형