상세 컨텐츠

본문 제목

[ 노마드 코더 / Dart ] Dart 시작하기 #2 Data Types / #3 Functions

App/Flutter (+Dart)

by 감싹이 2023. 4. 18. 08:42

본문

 

노마드 코더 무료 다트 강의 정리 노트

 


#2 Data Types

 

#### Basic Data Types

void main() {
  String name = 'nico';
  bool alive = true;
  int age = 12;
  double money = 69.99;

  num x = 12;
  x = 1.1;
}

#### Lists

void main() {
  var numbers = [1, 2, 3, 4];
  numbers.
}

- listname.first : 배열의 첫번째 원소

- listname.last : 배열의 마지막 원소

- listname.add()

 

collection if

void main() {
  var giveMeFive = true;
  var numbers = [
    1,
    2,
    3,
    4
    if (giveMeFive) 5
    ];
  } // numbers 출력하면 [1, 2, 3, 4, 5] 출력

 

#### String Interpolation

void main() {
  var name = 'nico';
  var age = 10;
  var greeting = "Hello, everyone! My name is $name and I\'m ${age+2}. nice to meet you!";
}

 

#### Collection for

void main() {
  var oldFriends = ['nico', 'lynn'];
  var newFriends = [
    'lewis',
    'ralph',
    'darren',
    for(var friend in oldFriends) "❤️ $friend",
  ];
  print(newFriend); // [ lewis, ralph, darren, ❤️ nico, ❤️ lynn]
}

 

#### Maps : python dictionary와 유사

void main() {
  var player = {
    'name' : 'nico',
    'xp' = 99,
    'superpower' : false,
  };
}
void main() {
  Map<int, bool> player = {
  1: true,
  2: false,
  3: true
  };
}
void main() {
  Map<List<int>, bool> player = {
  [1, 2, 3, 4] : true
  };
  player.
}

 

#### Sets

void main() {
  Set<int> numbers = [1, 2, 3, 4];
  var numberss = {1, 2, 3, 4};
}

- 배열 안의 원소들이 모두 Unique함

 

 

#3 Functions

#### Defining a Function

String sayHello(String name){
  //call api
   return "Hello $name nice to meet you!";
}

void main() {
  print(sayHello('nico'));
}

- 화살표 함수 사용 가능

String sayHello(String name) => "Hello $name nice to meet you!";

void main() {
  print(sayHello('nico'));
}

 

#### Named Parameters

String sayHello(String name, int age, String contury){
  return "Hello My name is $name ans I\'m $age. My contury is $country";
}

void main() {
  print(sayHello(
    age: 12,
    country: 'cuba',
    name: 'nico',
  });
}

- defalut value 정하기

String sayHello({
  String name = 'aono',
  int age = 99,
  String contury = 'wakanda'
  }) {
  return "Hello My name is $name and I\'m $age. My contury is $country";
}

void main() {
  print(sayHello(
    age: 12,
    country: 'cuba',
    name: 'nico',
  });
}

- required modifier

name parameter가 required라고 지정

String sayHello({
  required String name,
  required int age,
  requred String contury,
  }) {
  return "Hello My name is $name and I\'m $age. My contury is $country";
}

void main() {
  print(sayHello(
    age: 12,
    country: 'cuba',
    name: 'nico',
  });
}

 

#### Optional Positional Parameter

- 파라미터 하나를 사용하고 싶지 않을 때

String sayHello(
  String name,
  int age,
  [String? country = 'cuba']
  ) => "'Hello $name, you are $age years old from $country';

 

#### QQ Operator

- 내이름을 대문자로 만들자

String capitalizeName(String? name) => {
  if (name != null) {
    name.toUpperCase();
  }
  return 'ANON';
}

void main() {
  capitalizeName('nico');
  ca[italizeName(null);
}
String capitalizeName(String? name) => name != null ? name.toUpperCase() : 'ANON';

void main() {
  capitalizeName('nico');
  ca[italizeName(null);
}
String capitalizeName(String? name) => name?.toUpperCase() ?? 'ANON';

void main() {
  capitalizeName('nico');
  ca[italizeName(null);
}

 

String? name;

name ??= 'nico' 

- name이 null이면 nico 반환하라는 의미

 

#### Typedef

- 자료형이 헷갈릴 때 도움이 될 alias를 만드는 방법

 

typedef ListOfInts = List<Int>;

 

ListOfIntns를 List<Int> 대신 자료형으로 사용할 수 있음

관련글 더보기