본문 바로가기

함수9

[Kotlin] 함수 함수 확장함수 Kotlin fun main() { val str = "ABC" println(str.lastChar()) println(str.lastChar) } fun String.lastChar(): Char { return this[this.length - 1] } val String.lastChar: Char get() = this[this.length - 1] 코틀린은 자바와 100% 호환되기를 목표로 했다. 기존 Java 코드 위에 자연스럽게 코틀린 코드를 추가하려 했다. -> 어떤 클래스 안에 있는 메서드처럼 호출할 수 있지만, 함수는 밖에 만들 수 있게 하자! fun 확장하려는클래스.함수명을 이용해 함수를 확장한다. 함수 안에서는 this를 통해 인스턴스에 접근 가능하다. this: 수신.. 2022. 7. 7.
[Kotlin] 함수를 다루는 방법 함수를 다루는 방법 함수 선언 문법 Java public int max(int a, int b) { if (a > b) { return a; } return b; } Kotlin fun max(a: Int, b: Int): Int = if (a > b) { a } else { b } fun maxV2(a: Int, b: Int) = if (a > b) a else b 함수의 문법은 Java와 다르다. 접근지시어 fun 함수이름(파라미터): 반환타입 {} body가 하나의 값으로 간주되는 경우 block을 없앨 수도 있고, block이 없다면 반환 타입을 없앨 수도 있다. {}를 없애고 = 를 사용할 수 있다. if else 문은 Expression이기 때문에 = 으로 대치 가능한 것. public은 생략.. 2022. 7. 6.
[CleanCode] 3장 함수 - 2 함수 - 2 부수효과를 일으키지 마라 함수에서 한 가지를 하겠다고 약속하고선 남몰래 다른 것도 하면 안된다. 예상치 못하게 클래스 변수를 수정하고나, 함수로 넘어온 인수나 시스ㅔㅁ 전역 변수를 수정하면 안된다. 출력 인수 // 나쁜 예 appendFooter(stringBuffer); // 좋은 예 report.appendFooter() 일반적으로 우리는 인수를 함수 입력으로 해석한다. 출력 인수는 피해야 한다. 함수에서 상태를 변경해야 한다면 함수가 속한 객체 상태를 변경하는 방식을 택한다. 명령과 조회를 분리하라 함수는 뭔가 수행하거나 뭔가에 답하거나 둘 중 하나만 해야 한다. 객체 상태를 변경하거나 객체 정보를 반환하거나 둘 중 하나다. 오류코드보다 예외를 사용하라 명령 함수에서 오류 코드를 반환하.. 2022. 6. 26.
[CleanCode] 3장 함수 - 1 함수 - 1 작게 만들어라 함수를 만드는 첫째 규칙은 작게이다. 둘째 규칙은 더 작게이다. 블록과 들여쓰기 if문, else문, while문 등에 들어가는 블록은 한줄이어야 한다. 이 한줄에서 대개 함수를 호출한다. 블록 안에서 호출하는 함수 이름을 적절하게 짓는다면, 코드를 이해하기도 쉬워진다. 즉, 중첩 구조가 생길만큼 함수가 커져서는 안된다. 함수에서 들여쓰기 수준은 1단이나 2단을 넘어가면 안된다. 한 가지만 해라 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다. 지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지 작업만 하는 것이다. 함수를 만드는 이유: 큰 개념을 다음 추상화 수준에서 여러 단계로 나눠 수행하기 위해서 단.. 2022. 6. 26.
[QueryDSL] 벌크연산과 SQL Funtion 벌크연산과 SQL Function 쿼리를 이용하면 일정한 조건에 해당하는 데이터에 공통적으로 수정해야 하는 일이 있다. 이 때 벌크 연산을 이용한다. 벌크연산 long count = queryFactory .update(member) .set(member.username, "비회원") .where(member.age.lt(28)) .execute(); member의 age가 28 이하인 경우 username를 비회원으로 수정하는 벌크연산이다. query와 동일하게 update, delete등을 이용한다. 벌크연산의 주의할 점은 spring data jpa와 다르게 영속성 컨텍스트에 있는 엔티티를 무시하고 데이터베이스에 직접 실행된다. 그렇기 때문에 배치 쿼리를 실행하고 나면 영속성 컨텍스트를 초기화 하는.. 2022. 5. 15.
[JS] 함수 function [JS] 함수 function 자바스크립트의 함수 선언방법과 전역함수에 대해 알아본다. 목차 자바스크립트 함수 선언방법 자바스크립트의 전역함수 자바스크립트 함수 선언방법 자바스크립트에서 함수를 선언할 때에는 다음과 같이 작성한다. function 식별자(매개변수1, 매개변수2, ...){ 연산내용1; 연산내용2; 연산내용3; ... return 리턴값 [생략가능] } function키워드로 함수 선언을 알린다. 식별자를 작성한 후 매개변수를 작성한다. 소활호 () 내에서 매개변수를 작성하며, 콤마 , 로 매개변수를 구분한다. 생략 가능하다. 중괄호 {} 내에서 연산할 내용을 작성한다. return 키워드는 리턴값이 필요할 때 작성하지만, 리턴값이 필요하지 않을 때에는 생략 가능하다. See the Pen.. 2021. 2. 12.
4. C_함수 함수는 사용자가 미리 정의하여 필요할 때에 불러와 이용할 수 있는 코드를 뜻합니다. 예를 들어 c파일 상단에 #include 를 작성한다면 stdio.h에 정의되어있는 scanf함수를 이용할 수 있는 것과 같습니다. 지금은 코드작성자가 직접 함수를 만들고 이용하는 방법을 알아보겠습니다. 1. 함수 선언하기 함수를 선언하는 기본 형태는 상단에 리턴타입 함수명 (매개변수1, 매개변수2, ...); 를 작성하여 함수가 존재함을 선언하고, main()아래에 리턴타입 함수명 (매개변수1, 매개변수2, ...){ 문장 } 을 작성하여 함수를 이용할때 내부적으로 진행될 문장을 작성하여 함수선언을 마칩니다. int numSum(int a, int b); //함수 원형 선언하기 int main(int argc, char.. 2021. 1. 19.
5. 함수와 시퀀스(SEQUENCE) Oracle SQL에서 함수와 시퀀스에 대해 알아보겠습니다. 1. 함수 Oracle SQL에서 어떠한 테이블 항목의 합계/평균/최댓값/최솟값/개수를 알고 싶을 때는 함수를 이용할 수 있습니다. 공통된 사용방법은 SELECT [함수명]([항목명]) FROM [테이블명]; 입니다. 위 테이블을 이용하여 예시를 들어보겠습니다. ​ 1) 합계 - SUM([항목명]) SUM 함수는 원하는 값들의 합을 보여줍니다. ex_table의 ex_num 항목의 모든 값들의 합을 조회하고 싶다면 SELECT SUM(ex_num) FROM ex_table; 으로 합계를 조회할 수 있습니다. ​ 2) 평균 - AVG([항목명]) AVG 함수는 원하는 값들의 평균을 보여줍니다. ex_table의 ex_num 항목의 모든 값들의 평.. 2021. 1. 19.
9. 메서드, 함수 (Function, 오버로딩) java에서의 메서드에 대하여 알아보겠습니다. 메서드는 반복되는 기능들을 쉽게 관리하고, 코드를 줄이기 위하여 사용합니다. 메서드는 클래스와 메인 사이에서 선언되어야 하며 static 결과값의자료형 함수명 (입력값의자료형 변수명){} 으로 선언할 수 있습니다. public class Test{ static void function() { System.out.println("function 메소드 실행 완료"); } public static void main(String[] args) { function(); } } Colored by Color Scripter 위 코드를 보시면 메인 밖에서 funcion이라는 함수를 정의하고 메인에서 함수만을 입력하였지만 실행시에 콘솔에서는 "funcion 메소드 실행 .. 2021. 1. 19.