Flutter/Dart

    [플러터/다트] 삼항연산자와 nullish coalescing

    삼항연산자 int value1 = 5; bool value2 = false; value2 = value ? 100 : 200; ?는 자바에서도 볼 수 있는 삼항연산자입니다. ? 앞의 수식이 true면 :의 앞쪽을 반환하고 false면 :의 뒤쪽을 반환합니다. 플러터에서 굉장히 자주 사용하게 되는데, widget내에서는 if문을 사용하지 못하기 때문입니다. isSignIn ? RaisedButton( child: Text('SingUP') onPressed:(){} ) : SizedBox(), 예시처럼 조건에 맞게 widget이 랜더되야하는 경우에는 삼항연산자를 사용해야합니다. 또, 크기나 기타 위젯의 속성들을 조건에 맞추는 경우도 마찬가지입니다. 그리고 삼항연산자는 반드시 true와 false 두가지 반..

    [플러터/다트] where 함수 (JS의 Filter)

    [플러터/다트] where 함수 (JS의 Filter)

    Filter 자바스크립트의 배열 타입의 변수에서 Filter()를 사용하곤한다. 하지만 왜 다트에는 없을까? 찾아보았더니 where이라는 함수가 이를 대신하고 있다. 보시다시피 파생 함수가 많은데 메인 동작은 동일하고 함수명으로 차이점을 대략 유추할 수 있다. Where where의 주요 동작은 자바스크립트의 filter와 같이 각 요소들을 조건으로 걸러 새로운 배열을 만드는 함수이다. 조금 다른 점이 있다면 index 값을 제공해주지 않는다. 아래는 배열의 요소 중 짝수만을 골라 새로운 배열을 생성하는 예시이다. where은 return 값이 배열이므로 기존 배열을 수정하길 원하면 retainWhere을 사용해야한다. List list = [...] List evenNumbers = list.where..

    [플러터/다트]map() 함수

    iterable 함수 설명의 return 값을 보면 iterable 이라고 하는 타입이 종종보인다. iterable는 List의 추상 클래스로 순서가 있는 배열이다. 일반적으로 선언해서 사용하지는 않지만 함수에서 순서가 있음을 표현하기 위해 사용된다. 은 제네릭을 의미한다. Map 함수 map()은 iterable를 가공하여 iterable로 반환하는 함수이다. forEach()가 단순 루프인것에 반해 map()은 반환이 존재한다. List data = [Item ....]; List containers = data.map((Item item) { //에는 반환값, ( )는 배열의 요소 값 return Container( child : Text('Item.name'));})

    [플러터/다트] 메모리 주소로 전달되는 List

    [플러터/다트] 메모리 주소로 전달되는 List

    Dart의 List는 매개변수, '= '등 으로 전달시 메모리 주소 값으로 전달되어 이름이 다르더라도 한 곳에서 요소를 변경하면 모두 다 변경된다. 예제1 void main() { List pointer = [1,2,3]; myClass myclass = myClass(pointer); myclass.reverse(); print(pointer.toString()); } class myClass{ myClass(this.pointer); List pointer; void reverse(){ for(int i =0; i

    [다트/플러터] Get, Set 타입

    [다트/플러터] Get, Set 타입

    Get/ Set 타 언어와 마찬가지로 Dart에도 get, set이 존재한다. get, set은 일반 변수와 동일한 방식으로 값을 정의하고 참조 할 수 있다. 변수로 취급된다고 볼 수 있으며 따라서 다른 변수 명과 중복될 수 없다. get과 set끼리는 중복이 가능하다. 변수를 정의하고 참조할 때는 해당 행위가 그 변수의 값에만 접근하지만, get, set을 사용하면 변수에 접근함과 동시에 다른 행위도 함께 수행 할 수 있다. 예제 void main() { myClass myclass = myClass('플러터', 1); //get //일반 변수의 형태로 값을 참조한다. print(myclass.name); //set //일반 변수와 동일하게 값을 지정한다. myclass.name = '리액트'; } c..