본문 바로가기

function3

Effective Go - Functions - 출처: https://go.dev/doc/effective_go#functions - Multiple return values Go의 특이한 점중 하나는 함수와 메소드가 여러 값을 반환할 수 있다는 것이다. Go 에서 Write 메소드는 count과 error를 반환하는데 이 덕분에 "일부 bytes를 쓰긴했지만 어떤 error 때문에 전부 쓴것은 아니다."와 같은 정보를 알 수 있게 된다. os package의 Write 메소드 시그니처를 살펴보자. func (file *File) Write(b []byte) (n int, err error) 위의 함수는 n != len(b) 일 때 쓰여진 byte의 수와 nil이 아닌 error를 반환한다. Go에서는 이런 형태를 많이 사용하고 있다. multip.. 2022. 5. 7.
[Java 8] 람다(Lambda) - 3 - 출처: Java 8 in action - 출처: https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html - 메서드 레퍼런스 메서드 레퍼런스는 메서드를 변수에 저장한것처럼 사용할 수 있게 한다. 람다와 메서드 레퍼런스중 꼭 어느것이 더 좋다거나 가독성이 더 좋다고 말할 수는 없다. 상황에 따라서 메서드 레퍼런스가 때로는 람다가 가독성이 더 좋으므로 상황에 맞게 잘 사용하자. 메서드 레퍼런스는 아래처럼 사용한다. public class People { private String name; private Integer age; public People(String name, Integer age) { super(); this.na.. 2021. 2. 11.
[Java 8] 람다(Lambda) - 1 - 출처: Java 8 in action - 람다란 무엇인가?람다 표현식이란 메서드로 전달할 수 있는 익명함수를 단순화 한것이다. 람다 표현식에는 이름이 없으며, 파라미터 리스트, 바디, 반환형식, 발생할 수 있는 예외 리스트를 가지고 있다.메소드와 달리 이름이 없으므로 익명이라 표현한다.어떤 클래스에 종속되는 메소드가 아니라서 함수이다.Java 8 이전에는 메소드를 전달하고 싶으면 익명클래스를 하나 선언하여 전달하였다. 이말이 무슨말인지 모를수도 있지만 아래와 같은 코드를 한번쯤은 사용해본적이 있을거라고 생각한다.1 2 3 4 5 6 7peoples.sort(new Comparator() { @Override public int compare(Person o1, Person o2) { return o1.. 2021. 2. 10.