코틀린
[코루틴] runBlocking
runBlocking은 코루틴을 만들고 코드 블록이 수행이 끝날 때까지 runBlocking 다음의 코드를 수행하지 못하게 막는다. 이 때 코루틴을 만드는 함수를 coroutine builder라고 한다. fun runBlockingFunc(){ runBlocking { println(coroutineContext)// 코루틴 스코프는 코루틴을 제대로 처리하기 위한 정보, coroutineContext를 가지고 있다. coroutineContext는 여러가지 정보를 가지고 있음. println(this) //runBlocking 안에서 this를 수행하면 코루틴이 수신 객체인 것을 알 수 있다. 즉 코드 블런 안에서 모든 코루틴 기능 사용 가능 println(Thread.currentThread().na..
예외 처리
오류가 발생하면 예외를 던진다. 함수를 호출하는 쪽에서 예외 처리 가능 코틀린의 예외 처리 예시 val percentage = if (number in 0 .. 100) number else throw IllegalArgumentException( "A percentage value must be between 0 and 100: $number" ) 코틀린은 자바와 마찬가지롤 예외 처리를 위해 try, catch, finally절을 함께 사용 import java.io.BufferedReader import java.io.StringReader fun readNumber(reader: BufferedReader): Int?{ try{ val line = reader.readLine() return Int..
Iteration
while 루프 while do-while 자바와 다르지 않음 while(조건){ /*...*/ } do{ /*...*/ }while(조건) for 루프 범위와 수열 범위 폐구간의 범위를 지정 가능b. 수열 fun main() { val a = 1..10 println(a is IntRange) } 범위에 속한 값을 일정한 순서로 이터레이션하는 경우 예시 fun fizzBuzz(i: Int) = when{ i % 15 == 0 -> "FizzBuzz" i % 5 == 0 -> "Buzz" i % 3 == 0 -> "Fizz" else -> "$i" } fun main(){ for(i in 1..100){ println(fizzBuzz(i)) } } 역방향 수열을 원한다면 정수 downTo 정수 사용 증가..
선택 표현과 처리
enum 클래스 enum class Color{ RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET } enum 클래스 안에 프로퍼티나 메소드 정의 가능 enum class Color(val r: Int, val g: Int, val b: Int){ RED(255,0,0), GREEN(0,255,0), BLUE(0,0,255); fun rgb() = (r * 256 + g) * 256 + b } fun main() { println(Color.BLUE.rgb()) } 각 enum 상수를 정의할 때 그 상수에 해당하는 프로퍼티 값을 지정해야함 enum 클래스 안에 메소드를 정의하는 경우 반드시 enum 상수 목록과 메소드 정의 사이에 세미콜론을 넣어함 when으로 enu..
클래스와 프로퍼티
class Person(val name: String) class 이름 : Person 괄호 안의 파라미터는 프로퍼티 클래스의 기본 가시성은 public 프로퍼티 클래스 데이터를 캡슐화 캡슐화한 데이터를 다루는 코드를 한 주체 아래 가두는 것 프로퍼티 자바에서는 필드와 접근자를 묶어서 프로퍼티라고 부름 코틀린 프로퍼티 자바의 필드와 접근자 메소드를 완전히 대신 프로퍼티 선언 시 → val이나 var을 사용 val : 읽기 전용 프로퍼티 var: 변경 가능 class Person( val name: String, var isMarried: Boolean ) 코틀린은 위의 2개의 프로퍼티에 대해 (비공개) 필드와 (공개) 접근자 메소드를 만들어낸다. 단 val의 경우 setter는 만들지 않음! val pe..
함수와 변수
함수로 보는 코틀린 fun main(args: Array){ priintln("Hello, world!") } 발견할 수 있는 특징 함수를 선언할 때 → fun키워드 사용 파라미터 이름 뒤에 그 파라미터의 타입을 쓴다. 함수를 최상위 수준에 정의 가능 꼭 클래스 안에 함수를 넣어야 할 필요 X 배열도 일반적인 클래스와 동일 코틀린에서는 자바와 달리 배열 처리를 위한 문법이 따로 존재 X 표준 출력 : println사용 코틀린 표준 라이브러리는 여러 가지 표준 자바 라이브러리 함수를 간결하게 사용가능하게 해주는 wrapper제공 세미콜론을 붙이지 않아도 된다. 함수 fun max(a: Int, b: Int) : Int { return if (a > b) a else b } 함수 선언은 fun키워드로 시작 ..
What is Kotlin
Kotlin 코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어로 등장 자바가 사용되고 있는 모든 용도에 더 간결하고 생산적이며 안전한 대체 언어 제공을 목적으로 함. 특징 자바 코드와의 상호운용성 서버 개발, 안드로이드 앱 개발 등의 분야에서 사용 함수형 프로그래밍 가능 람다 식 -> 람다 식의 it은 람다 식의 유일한 인자를 바로 사용 가능! 함수 타입 안전성 강조 Nullable 타입 -> 해당 객체가 null일 경우 대체 값 지정 가능 ClassCastException 방지 정적 타입 지정 언어 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있고 프로그램 안에서 객체의 필드나 메소드를 사용할 때마다 컴파일러가 타입을 검증 단, 코틀린에서는 모든 변수의 타입을 프로그래머가 직접 명시할..
🔥코틀린 시작
📱안드로이드 개발자 나의 목표는 안드로이드 개발자가 되는 것이다. 주언어를 코틀린으로 사용하고 있고 지금까지 혼자서 만들어본 토이 프로젝트를 제외하고 프로젝트를 2회 진행 현재는 스마일게이트에서 진행하는 Winter Dev Camp에 안드로이드 개발로 참여하여 규모있는 프로젝트를 계획하고 있다. 코틀린이라는 언어를 제대로 공부하지 않았다. 프로젝트를 진행해본 결과 코틀린을 깊게 이해하지 않는다면 한계가 있다는 것을 깨달았다. 💡코틀린 시작 안드로이드 공부를 시작한 것은 6개월 전이다. 메타버스와 안드로이드 개발에 관심을 가지고 있었고 진로를 고민하였다. 1개월 전에 안드로이드 개발로 진로를 확정하고 이번 방학을 시작으로 안드로이드 공부를 본격적으로 시작하고자 한다. 안드로이드 개발을 진행하면서 가장 기본..