Dart 겉핥기

LeeWonjin·2024년 3월 13일
0

플러터

목록 보기
3/15
  • 귀찮으면 온라인 도구 dartpad 사용 https://dartpad.dev/

  • 출력함수는 print()

  • 주석은 //

  • 세미콜론 찍어야된다.

  • 네이밍 컨벤션 : https://couldi.tistory.com/31

  • 코드쪼가리로 대충 써놓은건 void main() {}의 바디 안에 썼다고 치자

변수

컨벤션

변수 함수는 카멜 케이스가 국룰이라고 한다
클래스는 파스칼 케이스가 국룰이라고 한다

선언과 대입

var vs = 'wjlee'; // 스트링이다
print(vs.runtimeType); // 타입확인
var vi = 20; // 숫자다
String s = 'wj'; // 스트링이다
int i = 42; // int다

int? nullable_i = null; // 널이 들어간다
int normal_i = null; // 컴파일에러

final String fs = '하하못바꾸지';
fs = 'quelque chose'; // 컴파일에러

dynamic

dynamic d = 1;
d = 'one';
d = true;
d = 4.2;
print(d);

문자열

String s1 = 'france';
String s2 = 'epita';
print(s1 + " has " + s2); // 이거 된다
print('$s1 has $s2'); //이거 된다
print('I was in ${s2 * 10}'); // 익스프레션도 된다.

var arr = s2.split('i');
print(arr);

문자열 비교는 그냥 하면 됨.

print('cisco' == 'cisco'); // true
print('bonne nuit' == 'cisco'); // false

숫자

int, double.
to<타입> 메소드 있음.

    • / % ~/연산 됨.
      /나누기 연산 하면 소수로 나옴
      ~/나누기 연산하면 정수로 결과 나옴

불리언

bool.
true or false.

리스트

List<T>
[elem1, elem2, ..., elem-n] 그거 맞다.

List<int> l = [4, 2, 42]; // int말고 다른거 넣으면 컴파일에러
print(l[2]); // 42
print(l.length); // 3

l.add(4242); 
l.remove(4);
l.removeAt(0);

다이나믹 타입 리스트

list<dynamic> l = [42, '42', 'fourtytwo'];

Map

딕셔너리임

Map<KT, VT>
순서대로 키 타입, 밸류 타입.

Map<String, int> m = {
	'height' : 200,
    'gpa' : 4,
};
print(m['height']); // 200

m['height'] = 180;
m['new-one'] = 42424242;
m.remove('gpa');

제어문

// if
if () {

} else if () {

} else {

}

// for
for (int i = 0; i < 42; i++) {
	print('Ca va?');
}

// for in
List<String> l = ['4', '2'];
for (String s in l) {
	print(s);
}

함수

main() {
  var res = pardon(10);
  print(res);
  
  // 이름지정 매개변수
  bonjour(gender: 'madame', isFriend: false);
}

String pardon(int howMuch) {
 return 'pardon'*howMuch;
  
}

// {}안의 매개변수는 필수값이 아님. 필수로 만들려면 required 붙이면 됨.
void bonjour({String? gender, required bool isFriend}){
  if(isFriend)
    print('salut');
  else
    print('bonjour');
  
  print('\t$gender');
}

클래스

main() {
  Language L = Language(['a', 'b', 'c']);
  Python P = Python(['for', 'if', 'return'], 'python', 'super');

  L.sayFirstAlphabets(2);
  print(P.getInfo());
}

class Language {
  List<String> alphabet = [];

  //생성자
  Language(List<String> alphabet) {
    this.alphabet = alphabet;
  }

  //메소드
  sayFirstAlphabets(int length) {
    String s = '';
    for (int i = 0; i < length; i++) s += alphabet[i];
    print(s);
  }
}

// 상속
// 자식이 부모의 생성자를 상속받지는 않는다.
class Python extends Language {
  String name = '';
  String description = '';

	// 생성자가 변수초기화만 하면 이렇게 써도 된다.
  Python(super.alphabet, this.name, this.description);

  getInfo() {
    Map<String, dynamic> m = {
      'name': name,
      'description': description,
      'alphabets': super.alphabet,
    };
    return m;
  }
}
profile
노는게 제일 좋습니다.

1개의 댓글

comment-user-thumbnail
2024년 3월 14일

It's a useful content summarized by you for Flutter beginners!

답글 달기

관련 채용 정보