(Flutter 기초) Dart 문법정리

Posted by : at

Category : Flutter


// print
print('Hello Wrold');
// var
var i = 10;
var str = 'Hello';
var f = 3.5;
var b = true;

// dynamic - 뭐든 상관없음.
dynamic d = 10;
new_func(10.3); // Okay

void new_func(dynamic d) {
    // ...
}
// number typecast
int n = 10;
num nn = n;  // float or int

// 형변환
var bbb = 4.5;
a = bbb as int;
// final
final c = 10;     // (메모리 동적초기화) 초기화 후 변경불가
const bb = 20;
// List
List<String> items = ['a', 'b', 'c'];
print(items);

var items2 = ['a', 'b', 'c'];
print(items2);

print(items2[0]); // okay

// List 병합
var items11 = [...items, 4, 5];
// set
Set<int> itemsSet = {1, 2, 3};
// var itemsSet = {1, 2, 3};

```dart
// map
var itemMap = {'key1': 1, 'key2':2};
// function option
func2(option_str: "hello");
func3(option_str: "hello2", age: 20);

void func2({String? option_str}) {
    // ...
}

// @required : 반드시 포함
void func3({String? option_str, @required int age = 10}) {
    // ...
}
// type 비교
int a = 0;
if (a is int) {
    // ...
}
if (a is! int) {
    // ...
}
// null일때 체크해서 기본값 넣기
var name;
print(name ?? '기본값');   // name이 null이라면 기본값 넣음

String str_name;
print(str_name?.toLowerCase())  // str_name? : null이 아닐때만 함수 호출
// 클래스 생성
var person = Person('홍길동', 10)
// person 오브젝트 내의 함수를 호출시에
..func1()
..func2();  // 호출가능

class Person {
  String name;
  // String _name; --> private
  int age;

  // 생성자
  Person(this.name, this.age);

  // getter
  String get name => '제 이름은 $name';

  // Example Func
  void func1() {}
  void func2() {}
}
  // 비동기 요청 - future
  networkRequest();

  // 비동기 요청 - stream
  StreamController _counterController = StreamController<int>();

  _counterController.close();
}

Future networkRequest() async {
  return await Future.delayed(Duration(seconds: 3));
}
// 상속
class Employee extends Person {
  //...
}

// 구현
class Employee implements Person {
  @override
  int age;

  // ...

  @override
  void func1() {}

// ...
}

class Employee with Person {
  // 선택적 override

  @override
  void func2() {}
}

class HelloDart extends StatefulWidget {
  const HelloDart({Key? key}) : super(key: key);

  @override
  _HelloDartState createState() => _HelloDartState();
}

class _HelloDartState extends State<HelloDart> {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: RaisedButton(onPressed: () => print('hello')/*이런식으로 익명함수 선언가능*/,)
    );
  }
}

About Taehyung Kim

안녕하세요? 8년차 현업 C++ 개발자 김태형이라고 합니다. 😁 C/C++을 사랑하며 다양한 사람과의 협업을 즐깁니다. ☕ 꾸준한 자기개발을 미덕이라 생각하며 노력중이며, 제가 얻은 지식을 홈페이지에 정리 중입니다. 좀 더 상세한 제 이력서 혹은 Private 프로젝트 접근 권한을 원하신다면 메일주세요. 😎

Star
Useful Links