본문 바로가기

study/dart

(9)
Dart_(8) Functions(1) <Define function> Dart is a true object-oriented language "Dart는 진정한 객체지향 언어이다" Dart document에서 function을 다룰 때 가장 먼저 이야기하는 말이다. 함수도 객체이다. 즉, 함수를 변수에 할당하거나 다른 함수에 인수로 전달할 수 있다!!!! 이처럼 놀라운 일이 어디 있을까? 1. Define function void print_name(String name){ print('$name'); } String return_name(String name){ return '$name'; } void main(){ print_name('sinmat'); return_name('sinmat2'); print(return_name('sinmat3'); } //출력 // s..
Dart_(7) Built-in types(2) <Collections> 2. Collections (1) List void main(){ var animals = ['rabbit', 'dog', 'cat', 'wolf']; List age = [5, 2, 4, 12]; animals.add('rat'); } 가급적 var 로 선언한다. (하지만 class를 다룰 때에는 type을 명시하는 것이 좋은 방법이다.) (2) Set Set 은 python의 Set과 거의 비슷하다. void main(){ Set price = {5000, 2000, 1000, 1000, 1000, 1000,}; price.add(2000); price.add(2000); price.add(2000); price.add(2000); print(price); // {5000, 2000, 1000} } ..
Dart_(6) Built-in types(1) <Basic data> 1. Basic data type void main(){ String name = 'shacoQ'; bool target = flase; int level = 5; double ad = 1.2; num exp = 55; num exp = 55.2; } Dart의 기본 타입들은 위와 같다. (1) Object(객체 지향) 모든 것이 객체 Dart는 "모든 것이 객체"라는 철학을 가지고 설계된 진정한 객체 지향 프로그래밍 언어이다. Dart의 모든 것이 클래스라고 봐도 무방할 정도이다. Dart는 기본 데이터 타입도 객체이고, String, Boolean, Int, Double, Num 심지어는 function까지도 객체이다. 여기서 특이한 것을 볼 수 있다. 아래는 num 또한 class임을 알 수 있는..
Dart_(6) Late variables 1. Late variables late 는 final 이나 var 옆에 붙을 수 있는 수식어이다. - late 는 데이터 없이 변수를 선언할 수 있게 해준다. - 변수를 선언하되 initialized(초기화) 되지 않은 변수를 선언하는 것이다. - 변수가 초기화 되지 않은(non-initialized) 상태로 선언할 수 있다는 것이다. late를 쓰는 경우는 아래와 같다. 2. 명시적 초기화(explicit initialization) "나 이거 할당할거야" 개발자가 코드 내에서 직접 변수에 값을 할당하는 경우, 그 할당이 이루어지는 순간이 초기화 시점이 됨. 이는 변수가 실제로 필요한 어느 시점이든 될 수 있으며, 초기화는 변수가 처음으로 값에 접근하기 전에 이루어져야 한다. 초기화 하는 것을 명시해..
Dart_(5) Final variables, Constant variables 1. Final & Const 만일 변수를 한 번 설정하고 다시 바꿀 일이 없다면, var 대신 final 이나 const를 사용하면 된다. 한 번 설정하면 바뀌지 않는 상수와 같은 역할을 한다. void main(){ final String name = 'sinmat'; const String name2 = 'sinmat2'; } 위와 같이 type 과 함께 사용해도 문제 없다.다만 final과 const의 특성과 쓰임이 조금 다르니 이해하고 넘어가도록 하자. 2. Final variabls (업데이트 불가능한 변수) 일반적으로 Dart 에서 변수를 지정하면 이후에 업데이트가 가능하다. 하지만 필요한 경우에는 한 번 지정된 변수를 변경하지 못하게 해야할 때도 있다. 그럴 때에는 변수를 선언할 때 fin..
Dart_(4) null safety(nullable variables) 1. null safety null값을 참조했을 때 오류가 발생하는 것을 컴파일 하기 전에 미리 방지해주는 방법 기본적으로 모든 변수는 null값을 가질 수 없지만 null값을 필요로 하는 경우도 있다. (잘 모르겠지만 앱을 만들고 실행하고나서 오류를 찾는 것이 아니라 만들면서 찾을 수 있도록 하기 위한 방법인 것 같다.) (API에서 data를 받아올 때 사용할 일이 있을 것이다.) bool isEmpty(String sentence) => sentence.length == 0; void main(){ isEmpty(null) } 위와 같이 코드를 전개하면 오류가 발생한다. String 이 와야 할 곳에 null 이 왔기 때문 2. 해결방안( nullable variables) void main(){ ..
Dart_(3) 변수(variables) 1. 변수 생성 방법(var, type명) void main(){ var name = 'shaco'; print(name); String name2 = 'shaco'; print(name2); } (1) var는 관습적으로 함수나 메소드 내에서 지역변수를 선언할 때 사용한다. - var + 변수명 (2) type명을 적어주는 방법은 class 에서 변수나 property를 선언할 때 사용한다. - type명 + 변수명 2. 변수 업데이트(같은 타입으로) void main(){ // var로 선언 var name = 'shaco'; name = 'troll'; //name = 2; // -> 불가능 //name = true; // -> 불가능 print(name); // type명을 적어서 선언 Strin..
Dart_(2) Hello world 1. 주석처리 주석처리는 // 로 한다. 2. void main() Dart는 void main() 함수가 있어야만 한다. (void는 return이 없는 함수를 만드는 명령어이다. / 함수) void main() { } void main()은 모든 Dart프로그램의 Entry point이다.(모든 Dart프로그램은 자동적으로 main함수를 찾는다. main 함수가 없다면 오류가 발생한다. 3. 세미콜론(;) void main() { print('hello world'); } Dart의 행은 세미콜론(;)으로 마쳐주어야 한다. javascript나 다른 언어는 세미콜론(;)이 없어도 자동적으로 처리해주기도 하지만 Dart의 경우는 일부러 세미콜론(;)을 안쓰는 기법이 있기 때문에 꼭 써주어야 한다.(ca..

반응형