개발일지349 Laxical Scope Dart에서 중첩함수 방식으로 함수 안에 함수 선언이 가능하다 // Lexical scope // Dart에서 중첨 함수 방식으로 함수안에 함수를 선언할 수 있다. void main() { var insideMain = true; void myFunction() { var inSideFunction = true; print(insideMain); void nestedFunction() { print("nested ${inSideFunction}"); } } myFunction(); } 개발일지/Dart 2022. 11. 9. 클로저(Laxical Closure) 1번에서 보면 add2변수에 makeAdder(2) 함수자체가 들어간다. 그럼 add2변수 자체가 매개변수 2를 가지는 함수가 되는 것이다. 즉 2가 살아있다는 것이다. 그리고 함수 호출을할때 매개변수에 새로운 값을 넣어주면 함수 안에있는 람다식에서 더하는 연산을하여 값을 출력해준다. 개발일지/Dart 2022. 11. 9. 익명함수 /// 익명함수 /// 대부분에 함수는 main(), printElement() 와 같이 이름을 가지고 있다. /// Dart를 비롯해 많은 언어들이 익명 함수, 람다(lambda),클로저(closure)라고 부르는 /// 이름이 없는 함수를 만들 수 있다. void main() { var list = ['apple','bananas','orange']; list.forEach((item) { print('${list.indexOf(item)} : ${item}'); }); } 개발일지/Dart 2022. 11. 9. 1급 객체 /// Dart에서도 함수는 1급 객체로 사용될 수 있다. 1급 객체의 조건은 /// 1. 변수나 데이터에 할당 할 수 있어야한다. /// 2. 객체의(생성자) 인자로 넘길 수 있어야 한다. /// 3. 객체의 리턴 값으로 리턴 할 수 있어야 한다. void main() { // 모든 함수는 리턴 값을 가진다. 리턴값이 없으면 null, 하지만 void 텅빈 - 아무것도 없는 의미이다. // void 선언하면 리턴을 하 수 없고, 문법적으로 막는다. List list = [1,2,3]; // 함수를 인자값으로 전달 받는다. // 한번 반복이 진행 될 때 parameter list.forEach(printElement); // 함수 리턴하기 var loudify = (msg) =>'!!! ${msg.toU.. 개발일지/Dart 2022. 11. 9. 열거타입(Enum) [열거타입] - Enum 데이터 범주화, 타입처럼 사용한다. 개발자에게 코드의 가독성을 높혀주고, 안정적인 프로그래밍을 할 수 있는 방식 중 하나 enum Status { ready, start, end } void main() { // 데이터 범주와, 타입처럼 사용, 개발자에게 코드의 가독성을 높여주고 안정적인 프로그래밍 방식에 하나 Status myStatus = Status.ready; if(myStatus == Status.ready) { print("준비중 입니다."); }else if(myStatus == Status.start) { print("시작 했습니다."); }else if(myStatus == Status.end) { print("종료 되었습니다."); } switch(myStatu.. 개발일지/Dart 2022. 11. 9. 매개변수(옵셔널 변수(optional parameter) /// Dart 함수와 매개변수(optional, named) void main() { addNumbers(101010, 10101010); bool isEven = isEvenNumber(addNumbers2(20, 400)) ; print(isEven == true ? "짝수" : "홀수"); // 함수 사용과 매개변수 // 1. 매개변수(positional parameter) // 2. optional parmeter - 있어도 되고, 없어도 된다. // 2 - 1. optional parameter 기본값을 정해줄 수 잇고 required를 설정할 수 있다. // 2 - 2. optional parameter required 주게 되면 named 파라미터라고 부른다. // 2 - 3. option.. 개발일지/Dart 2022. 11. 9. # 25 문자열에서 후행 공백 제거(RTRIM) 문자열에서 후행 공백 제거(RTRIM) SELECT RTRIM("SQL Tutorial ") AS "문자열 후행 공백 제거"; 개발일지/MySQL 문제모음 2022. 11. 9. # 24 제한된 길이만큼 지정된 글자 채우기(RPAD) 제한된 길이만큼 지정된 글자 채우기(RPAD) SELECT RPAD("SQL Tutorial", 20, "ABC") AS "제한된 길이만큼 지정된 글자 채우기"; 개발일지/MySQL 문제모음 2022. 11. 9. # 23 오른쪽부터 문자열 출력(RIGHT) 오른쪽부터 문자열 출력(RIGHT) SELECT RIGHT("SQL Tutorial is cool", 4) AS "오른쪽부터 4개의 문자열 출력"; 개발일지/MySQL 문제모음 2022. 11. 9. # 22 문자열 뒤집기(REVERSE) 문자열 뒤집기(REVERSE) SELECT REVERSE("SQL Tutorial") as "문자열을 뒤집는다"; 개발일지/MySQL 문제모음 2022. 11. 9. # 21 문자열 수정(REPLACE) 문자열 수정(REPLACE) SELECT REPLACE("NAVER Tutorial", "NAVER", "HTML") as "NAVER을 HTML로 수정"; 개발일지/MySQL 문제모음 2022. 11. 9. Stream API Stream API - stream과 다른 개념 (파일 I/O , 소켓 X -> 완전히 다른 개념) - java 8 버전부터 추가된 유용한 클래스 - 자바에서는 많은 양의 데이터를 저장하기 위해서 배열이나 컬렉션 프레임 워크를 사용한다. 그러면 코드의 길이가 너무 길어지고, 가독성도 떨어지며 코드의 재사용이 거의 불가능하다. - 반복자 (iterator) -> 스트림 API를 도입했다. 스트림 API를 이용하면 배열이나 컬렉션 등 모두 거의 같은 방법으로 다룰 수 있게 된다. * 스트림 API의 동작 흐름 스트림이라는 클래스가 생성 스트림의 중간 연산 스트림의 최종 연산 - 한번 생성한 스트림은 재사용이 불가능하다. (단 한번만 사용이 가능하다) - 스트림은 원본 데이터를 변경하지 않는다. -.. 개발일지/자바 2022. 11. 8. 이전 1 ··· 14 15 16 17 18 19 20 ··· 30 다음