fun eval(e: Expr): Int { if (e is Num) { return e.value } else if (e is Sum) { return eval(e.left) + eval(e.right) } else { throw IllegalArgumentException("Unknown expression") } }위는 if 식으로 사용한 경우 when 으로 리팩토링 한 경우fun eval(e: Expr): Int = when (e) { is Num -> e.value is Sum -> eval(e.left) + eval(e.right) else -> throw IllegalArgumentException("Unknown expression") }when 식은 타입 검사와 스마트 캐스프를 사용해 각..
범위 사용fun main(args: Array) { //범위 사용 val oneToTen = 1..10 // 1부터 10 까지 , 이상과 이하를 나타낼때는 .. 을 사용한다. for (i in oneToTen) { print("$i ") } }수열 사용fun main(args: Array) { for (i in 100 downTo 1 step 2) { println(i) } }수열을 해석하면100 부터 1 까지 ( 폐구간 ) : 100 이하 1 이상이라는 의미이다.step2씩 감소98 96 … 4 2 까지 출력반 만 닫힌 범위Intellij 에서 가독성 좋게 해당 문법의 인레이 힌트를 지원한다.for (x in 0..
fun main(args: Array) { println("Hello, World!") }함수의 선언fun 키워드 사용코틀린에서 함수는 클래스 뿐만이 아니라최상위 수준에도 정의가 가능하다파라미터 타입파라미터 이름 뒤에 선언한다.args 는 String 배열최상위 수준 함수클래스 안에 함수를 넣어야 할 필요가 없다.함수를 최상위 수준에서 정의할 수 있음.배열의 처리배열이 일반적인 클래스와 동일하게 취급됨자바와 다르게 배열 처리를 위한 별도 문법이 없음 ..뭐지?.표준 라이브러리System.out.println 대신 println 사용더 간결함세미 콜론 생략줄 끝에 세미콜론을 붙이지 않아도 된다. Uploaded by N2T
객체지향 프로그래밍(OOP)정의데이터와 해당 데이터를 처리하는 데 필요한 프로시저들을 객체로 캡슐화하고,해당 객체들 간의 상호작용을 통해 소프트웨어를 설계하고 구현하는 방법론특징클래스와 상속인터페이스캡슐화다형성 등이 특징이다.함수형 프로그래밍 (FP)정의계산을 수학적 함수의 평가로 간주상태 변경과 가변 데이터를 피하는 프로그래밍 패러다임상태 변경과 가변 데이터를 피한다?가변 데이터var count = 0 // 가변 변수 fun increment() { count += 1 // 상태 변경 }변수에 대한 의도치않은 상태의 변경을..val number = 5 // 불변 변수val 키워드를 통하여 변수를 불변으로 설정할수 있음.개념일급 함수함수를 일반 값처럼 다룬다.변수에 할당, 다른 함수의 인자로 전달가능불변..
코틀린은 자바와 동일한 컴파일 언어다작성된 코드 실행 전에 컴파일을 해야한다코틀린 코드는 .class 파일로 변환되며, JVM 에서 실행된다.코틀린 코드 컴파일파일 확장자코틀린 소스 코드는 .kt 확장자를 사용한다컴파일 과정코틀린 컴파일러 kotlinc 는 .kt 파일을 분석해.class 파일을 생성한다자바의 java → javac → .class 과정과 유사하다런타임 라이브러리컴파일된 소스는 코틀린 런타임 라이브러리에 의존한다해당 라이브러리는 코틀린 표준 라이브러리 클래스와 자바 API 확장 기능이 포함된다. Uploaded by N2T
코틀린의 특성자바와 호환기존 자바 프로젝트에 코틀린 코드를 쉽게 통합가능자바와 완벽하게 호환간결자바보다 더 적은 코드로 같은 기능을 구현할 수 있음생산성 증대안전NULL SAFE 하다 NPE 방지에 진심이다함수형 프로그래밍 지원정적 타입 지정 언어입니다.장점성능메서드 호출이 빠름실행 시점에 어떤 메서드를 호출할지 결정하는 과정이 필요없어짐신뢰성컴파일러가 프로그래의 정확성을 검증함실행 시 오류로 중단될 가능성이 적음유지 보수성코드에서 다루는 객체의 타입을 알 수 있기에 코드 이해가 쉬움코틀린 타입 추론타입 추론을 지원한다이는 자바에서도 var 로 존재하긴 했었지만, 타입이 드러나지 않는다는 점에 호불호가 갈렸음var x = 1