일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 시큐어코딩
- SQL
- 상속
- Android
- Spinner
- java
- degit
- snowpack
- parcel
- 버전일치
- 스프링
- 함수
- git
- 숫자
- 스타일보험
- 게시판
- 안드로이드
- 오버라이드
- 답글
- sub query
- 미니게임
- webpack
- 쿠키
- 코틀린
- React
- Spring
- java#왕초보
- 왕초보
- FIle
- kotlin
- Today
- Total
목록Coding/Kotlin (24)
YSHUSH

컴퓨터와 가위바위보 게임을 해보도록 하자 컴퓨터는 랜덤으로 내고 유저는 숫자를 입력하여 게임한다. 몇승 몇패 몇무인지 결과값도 출력해보자. 변수 정의 fun main(args: Array) { var userNum: Int var comNum: Int var win: Int var lose: Int var draw: Int var result: Int win = 0.also{ draw = it }.also { lose = it } /* win = 0 lose = 0 draw = 0 */ println("가위 바위 보 게임입니다.") } win = 0.also{ draw = it }.also { lose = it } → 0으로 초기화 하는 부분 랜덤값 얻기 // random comNum = (Math.ra..

lazy는 느긋한 계산법이라는 뜻으로 필요한 때(호출될 때)까지 계산을 늦추는 기법이다. fun main(args: Array) { val lazyTest = LazyTest() // (1) lazyTest.flow() // (3) } // lateinit class LazyTest{ init { println("init block") // (2) } val subject by lazy { println("lazy initialized") // (6) "subject value" // (7) } fun flow(){ println("subject not initialized") // (4) println("subject: $subject") // (5) -> 최초 초기화 } } println("subje..

게터와 세터 형식 - field의 사용 (변수 자신을 가리킨다.) class User(_id:Int, _name:String, _age:Int){ var id:Int = _id get() = field var name:String = _name get() = field set(value){ println("name setter") field = value.toUpperCase() } var age:Int = _age get(){ return field } set(v){ field = v } } 커스텀 setter class FakeAge{ var age:Int = 0 set(value){ field = when{ value 18 value in 18..30 -> value else -> v..

class Base(val id:String, val pwd:String, val age:Int){ // -> 기본생성자 constructor(id:String, pwd:String) : this(id, pwd, 22){ // -> 보조 생성자 println("constructor($id:String, $pwd:String, $age:Int)") } constructor(id:String) : this(id, "1004", 22){ // -> 보조 생성자 println("constructor($id:String, $pwd:String, $age:Int)") } override fun toString(): String { return "Base(id='$id', pwd='$pwd', age=$age)" }..

상속 open class Person{ val firstName:String = "" val lastName:String = "" private var age:Int = 24 protected var protectVar:Int = 12 internal var interVar:Int = 20 // internal은 패키지가 다르면 접근이 안됨 /* constructor(firstName: String, lastName:String, age:Int) { this.firstName = firstName this.lastName = lastName this.age = age } */ private fun privateFunc(){ } override fun toString(): String { privateFu..

클래스의 기본형태 class Person{ var firstName:String var lastName:String var age:Int constructor(firstName:String, lastName:String, age:Int){ this.firstName = firstName this.lastName = lastName this.age = age } fun getFullName():String{ return "$firstName $lastName $age" } } class Bird{ // property(속성) var name:String = "mybird" var wing:Int = 2 var vol:String = "short" var color:String = "blue" fun fly..

fun sum(a:Int, b:Int) = a + b fun text(a:String, b:String) = "Hi! $a $b" fun funcParam(a:Int, b:Int, c:(Int, Int) -> Int):Int{ return c(a, b) } fun hello(body:(String, String) -> String){ println(body("Hello", "World!")) } 함수 호출부 형식에 맞는 파라미터 + ::함수명 으로 파라미터에 함수를 대입할 수 있다. var global = 10 fun main(args: Array) { val res1 = funcParam(3, 4, ::sum) println(res1)// 결과값 = 7 hello(::text) hello({a, b -..

코틀린 함수의 기본형식 fun 함수명(매개변수:자료형, , ) : 리턴자료형 { 처리 } Default parameters 파라미터의 default값을 정해주어 정의하지 않고 함수 호출시 미리 지정된 값을 불러온다. vararg - 가변인자(가변 인자를 사용하면 함수를 호출할 때, 인자의 갯수를 유동적으로 지정할 수 있다.) 사용법은 인자 앞에 vararg를 붙이면 된다. fun add(name:String, email:String = "nobody"){ val output = "{$name}님의 이메일은 {$email}입니다." println(output) } fun add2(x:Int = 100, y:Int = 200){ println(x + y) } fun namedParam(x:Int = 100,..

fun sum(a:Int, b:Int) :Int{ var sum = a + b return sum } 이 문장을 람다식으로 변환하면 fun sum(a:Int, b:Int) = a + b 이렇게 된다. 두 수 중에 최대값 구하기 fun max(a:Int, b:Int):Int{ val m = if(a > b) a }else{ b } return m } 이 문장을 좀 더 간단하게 쓰면 fun max(a:Int, b:Int):Int{ return if(a > b) a else b } 람다식으로 변환하면 fun max(a:Int, b:Int) = if(a > b) a else b 이렇게 된다.

try catch finally val a = 6 val b = 0 var c:Int try { c = a / b }catch (e:ArithmeticException){ println("${e.message}") }catch(e: Exception){ println("${e.message}") }finally{ println("finally") } println("program end") fun main(args: Array) { var amount = 600 try { amount -= 100 checkAmount(amount) }catch (e:Exception) { println(e.message) } println("program end") } fun checkAmount(amount: Int)..