본문 바로가기
프로그래밍/Flutter-Dart

[Flutter] Dart 문법 (변수, 함수, 화살표 함수, 조건문, 반복문)

by 채연2 2021. 3. 15.

 

 

 

 

* 변수 : 모든 변수들이 Calss 안에 있을 필요는 없다!!

var name = 'Voyager I';
var year = 1977;
var antennaDiameter = 3.7;
var flybyObjects = ['Jupiter', 'Saturn', 'Uranus', 'Neptune'];
var image = {
  'tags': ['saturn'],
  'url': '//path/to/saturn.jpg'
};

class TestCalss {
  var fruit = "apple";
  var num = 5;
  var sub_fruit = ['banana', "orange"];
}

void main() {
  print(name);
  print(year);
  print(antennaDiameter);
  print(flybyObjects); //LIST
  print(flybyObjects[0]);
  print(image); //MAP
  print(image['tags']);

  TestCalss tc = TestCalss();
  print(tc.fruit + " : " + tc.num.toString() + ", " + tc.sub_fruit.toString());
}
//결과
Voyager I
1977
3.7
[Jupiter, Saturn, Uranus, Neptune]
Jupiter
{tags: [saturn], url: //path/to/saturn.jpg}
[saturn]
apple : 5, [banana, orange]

 

 

* 조건문, 반복문

var name = 'Voyager I';
var year = 1977;
var antennaDiameter = 3.7;
var flybyObjects = ['Jupiter', 'Saturn', 'Uranus', 'Neptune'];
var image = {
  'tags': ['saturn'],
  'url': '//path/to/saturn.jpg'
};

void main() {
  if (year >= 2001) {
    print('21st century');
  } else if (year >= 1901) {
    print('20th century');
  }

  var index = 0;
  for (var elem in flybyObjects) {
    print("[" + index.toString() + "] " + elem);
    index++;
  }

  var monthStr = "";
  for (var month = 1; month <= 12; month++) {
    monthStr += month.toString() + " ";
  }
  print(monthStr);

  while (year < 2016) {
    year += 3;

    print(year);
  }
}
//결과
20th century
[0] Jupiter
[1] Saturn
[2] Uranus
[3] Neptune
1 2 3 4 5 6 7 8 9 10 11 12 
1980
1983
1986
1989
1992
1995
1998
2001
2004
2007
2010
2013
2016

 

 

* 함수 : Dart는 타입 명시해도 되고 안해도 된다. 타입 추론이 가능하여 var 변수 선언이 가능하다!!

int fibonacci(int n) {
  return n * 10;
}

void main() {
  var result = fibonacci(20);
  print(result);
}

//타입 생략
fibonacci(int n) {
  return n * 10;
}

void main() {
  var result = fibonacci(20);
  print(result);
}

//결과
200

 

 

* 화살표 함수

- forEach 함수는 리스트 각 요소에 f함수를 실행시킴.

- where 함수는 각 요소를 elem으로 칭하고, elem에 'turn'이 포함되어 있는 요소를 골라 forEach 실행.

var flybyObjects = ['Jupiter', 'Saturn', 'Uranus', 'Neptune'];
var result = '';

void f(String s) {
  result = result + s + ' ';
}


//void forEach(void Function(String) f)
//forEach : Applies the function [f] to each element of this collection in iteration order.
//Iterable<String> where(bool Function(String) test)
//where : Returns a new lazy [Iterable] with all elements that satisfy the predicate [test].
void main() {
  flybyObjects.forEach(f);
  print(result);
  flybyObjects.where((elem) => elem.contains('turn')).forEach(print);
}
//결과
Jupiter Saturn Uranus Neptune 
Saturn

 

 

* 주석 : java 와 같음

 


같이 보면 좋은 다른 포스팅

https://cording-cossk3.tistory.com/82

 

[Flutter] Dart 문법 (class, ?, !, ?.)

* 클래스 ?, !, ?.등 각각이 의미하는 바를 파악하지 못해서 너무 헤맸지만 의미를 알고나니 코드가 이해가 갔다... class Spacecraft { // ? : 개체가 null일 수 있음 String? name; DateTime? launchDate; //Constructor,

cording-cossk3.tistory.com

https://cording-cossk3.tistory.com/83

 

[Flutter] Dart 문법 (상속)

* 상속 class Spacecraft { String? name; DateTime? launchDate; //Constructor, with syntactic sugar for assignment to members. Spacecraft(this.name, this.launchDate) { //Initialization code goes here. } Spacecraft.origin() { name = "무탈리스크"; launc

cording-cossk3.tistory.com

https://cording-cossk3.tistory.com/84

 

[Flutter] Dart 문법 (abstract, implement)

* 추상클래스, implement : 추상클래스 및 일반 클래스 implement 가능. - implement하면 클래스가 구현해 둔 메서드도 재정의 해야할 강제성이 생김. (일반 메서드도 구현해야 함) class Spacecraft extends Describ

cording-cossk3.tistory.com

https://cording-cossk3.tistory.com/85

 

[Flutter] Dart 문법 (async, Future, await, then)

* 비동기 - 아래 printWithDelay함수에서 await를 빼고 실행시키면 Future.delayed와 print가 동시에 실행되는 듯 하고, await을 넣고 실행시키면 delay가 적용된 후에 print가 실행된다. //Future : An object representing

cording-cossk3.tistory.com

https://cording-cossk3.tistory.com/86

 

[Flutter] Dart 문법 (getter, setter)

* getter, setter class Rectangle { double left, top, width, height; Rectangle(this.left, this.top, this.width, this.height); //Define two calculated properties : right and bottom. double get right => left + width; set right(double value) => left = value -

cording-cossk3.tistory.com

 

 

 

320x100

댓글