f 'Dev Language' 카테고리의 글 목록 — 하늘속에서IT

Dev Language

    [Kotlin] 함수에 인자로 함수를 사용할 수 있다?(feat. 고차함수, 함수형 인터페이스)

    고차 함수 fun m1(action: () -> Unit) { action() }고차 함수는 함수를 인자로 받거나 함수를 반환하는 함수 입니다. Kotlin 에서는 함수 매개변수를 사용할 수 있습니다. 람다 표현식val sum: (Int, Int) -> Int = { a, b -> a + b }println(sum(3, 4)) // 출력: 7람다는 익명 함수로, 코드 블럭을 변수처럼 사용하거나 함수의 인자로 전달할 수 있게 해줍니다. 람다 표현식은 `{..}` 로 정의됩니다. `고차 함수`와 `람다 표현식`// 고차 함수fun m1(action: (Int) -> String) { println(action(1))}// 람다 표현식 호출m1 { "it is $it"}위와..

    ByteArrayOutputStream 는 어떻게 사용되는 것일까?

    필자는 기본적으로 File 에 대한 접근을 할때, `OutputStream`을 상속하는 파일 관리자 클래스를 많이 사용하곤 했다. 예를 들면 아래와 같은 `FileOutputStream`이 대표적이다.File file = new File(filePath, "파일명")FileOutputStream fos = new FileOutputStream(file) 기본적으로 `FileOutputStream, DataOutputStream, BufferedOutputStream` ... 을 호출시 File 관련 파라미터가 위 예제와 같이 존재한다.  그래서 늘 위의 `코드`와 같이 파일과 Steram 클래스의 연결을 통해 I/O 를 처리하였는데, 최근 동료의 코드를 리뷰하면서 ByteArrayOutputStream ..

    OS 마다 서로 다른 파일 구분자(Java, File, FileSeparator)

    파일 구분자 개요 흔히 url 입력하듯이 `/`을 입력하는 것이 파일을 구분하는것의 당연함이라고 생각했지만 검색해보니, OS마다 다른 파일 구분자를 가지고 있었다. 그것을 흔히 사용하는 두개의 OS로 구분하고자 한다. 윈도우 : \ 리눅스 : / 만약 다음과 같은 파일 구조를 가지고 있다고 할때 fileGrandParent ->fileParent ->->fileChildren 각각의 OS는 파일 구분자가 다름으로 인해서, 표시하는 방식이 다르게 된다. 윈도우 : fileGrandParent\fileParent\fileChildren 리눅스 : fileGrandParent/fileParent/fileChildren 그렇지만 요즘의 프로그램들은 `\`(백슬래시), `/`(슬래시) 든 알아서 인식한다고 한다...