일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- javascript
- golang
- 오버로딩
- 자바스크립트
- 코틀린
- 리스트 뷰
- 배열
- HP
- 연산자
- Android
- Overloading
- Kotlin
- Array
- node.js
- 싱글 스레드
- 패널 교체
- Python
- var
- 자바
- js
- 노트북
- ListView
- 함수
- Java
- 노트북 추천
- 파이썬
- go
- as?
- adapter
- 안드로이드
- Today
- Total
목록Kotlin (21)
Bbaktaeho
자바에서 런타임 시 발생할 수 있는 NullPointerExeption을 코틀린에서 런타임이 아닌 컴파일 시점에서 미리 방지할 수 있게 했다.여기서 NullPoiinterExeption은 객체를 참조하는 변숫값이 null이라서 해당 객체의 메서드를 호출하거나 데이터를 참조할 수 없을 때 발생하는 예외이다. 쉽게 말해 빈 저금통에 동전을 찾는 느낌..?null 타입)널이 가능한 타입이다. 모든 타입 이름 끝에 ? 을 붙이면 된다.예를 들어 val a : Int? = null 코드를 보면 변수 a가 Int 타입으로 보이지만 ? 때문에 null이 가능한 Int 타입이라고 할 수 있다.다른 코드를 보자.123456789fun main() { var a : Int = 10 a = null //에러 var b ..
break와 continue 문은 루프의 실행을 제어할 때 사용하며 특히 여려 개의 루프가 중복되어 있을 때 유용하게 사용할 수 있다.break, continue)break나 continue 문을 라벨과 함께 사용하면 중복된 로프 중에서 라벨이 지정된 루프를 빠져나가거나 라벨이 지정된 루프의 그다음 반복을 계속 실행할 수 있다.간단한 예제를 보자.12345678910111213fun main(args: Array) { for (i in 0..9){ if (i == 4) break print(i) } println() for (i in 0..9){ if (i == 4) continue print(i) }}cs실행 결과는120123012356789cs첫 번째 반복문을 보면 i가 4일 때 루프를 빠져나온다..
for)코틀린에서 for 루프는 in 연산자를 사용하여 처리한다.먼저 코틀린 배열을 모르시는 분은 https://bbaktaeho-95.tistory.com/6 참고하시면 된다.간단한 예제를 보자. 1234fun main(args: Array){ val arr = arrayOf(1,2,3) for(item in arr) println(item) //item은 프로그래머가 선언한 것으로 카운터라고 한다.}Colored by Color Scriptercs 123123csInt 타입 배열 arr 를 선언하고 1,2,3 순으로 초기화하고 for 루프로 첫 번째 요소부터 마지막 요소까지 item이 받아와서 출력했다. 마지막 요소가 출력되면 for문은 더 이상 반복할게 없어서 종료한다.이때 루프의 반복 실행과 a..
코틀린에서는 조건문으로 if와 when을 사용한다. 코틀린에서 if와 when은 명령문이 아닌 표현식으로 간주한다. 다양한 상황에 맞게 간결한 코드를 작성할 수 있도록 해준다.이렇게 이해해보자.if)만약 (이게 true 라면) {이걸 실행해}-----------------------------------------if (a==10) {println("a는 10이다")}if-else)만약 (이게 true 라면) {이걸 실행해}true가 아니라면 {이걸 실행해}-----------------------------------------if (a==10) {println("a는 10이다")}else {println("a는 10이 아니다")}if-else if-else)만약 (이게 true 라면) {이걸 실..
인덱스 연산자)배열은 인덱스를 사용해서 저장된 요소를 불러오거나 변경할 수 있다.인덱스 연산자인 [] 는 get()과 set() 함수로 오버로딩되므로 우리가 정의하는 컬렉션 클래스에서도 get()과 set()을 정의하여 인덱스 연산자를 오버로딩할 수 있다. 여기서 get() 은 요소의 값을 읽고, set() 은 해당 요소를 변경한다.표기코드설명arr[i]arr.get(i)arr의 인덱스 i 의 값arr[i] = barr.set(i,b)arr의 인덱스 i 의 값을 b로 변경invoke 연산자)함수를 호출할 때는 이름에 괄호를 붙여 사용한다. 그런데 클래스의 인스턴스도 이런 방법으로 호출 가능하다. 이때는 괄호연산자->() 를 오버로딩한 invoke() 함수에 operator 키워드를 지정하여 해당 클래스..
비교 연산자)표기코드설명a > ba.compareTo(b) > 0a가 b보다 큰가?a = ba.compareTo(b) >= 0a가 b보다 큰 거나 같은가?a
코틀린 연산자를 사용하는 법은 다른 프로그래밍 언어와 유사하지만 내부적으로 연산자를 오버로딩한 함수를 사용한다. 코틀린에서 A+B는 덧셈 연산자를 오버로딩한 A.plus(B) 가 수행된다. 그래서 피연산자가 어느 타입이라도 우리는 + 로만 나타내도 돼서 편리하다.산술 연산자)표기코드설명a + ba.plus(b)a와 b를 더한다a - ba.minus(b)a에서 b를 뺀다a * ba.times(b)a와 b를 곱한다a / ba.div(b)a를 b로 나눈다a % ba.rem(b)a를 b로 나눈 나머지를 리턴한다기본 타입의 변수를 연산할 때는 우리가 굳이 연산자를 오버 로딩하지 않아도 된다. 이미 오버로딩되어 있다.다른 연산자도 확인해보자.단항 연산자)표기코드설명+aa.unaryPlus()a를 양수로 변환한다..
입력)코틀린에서 입력은 자바에서 사용한 Scanner 클래스를 이용할 수 있다. 또한 readLine() 함수를 사용하여 입력받을 수 있다.자바에서 Scanner 사용법은 먼저 Scanner 클래스를 Imprt 시켜주고 객체를 생성하여 원하는 타입을 입력받는 것이다.코틀린에서도 같은 방법으로 사용할 수 있다.12345678910import java.util.*fun main(args: Array) { print("이름을 입력하세요 : ") val name = readLine() print("학교를 입력하세요 : ") val s = Scanner(System.`in`) val uni = s.nextLine() //입력 print("이름은 $name , 학교는 $uni 입니다.")}Colored by Col..