본문 바로가기

개발84

TIL: 변수, 상수, array,list,String 연산 변수 var myName: String = "Burt.K" var myAge: Int var myName = "Burt.K" 코틀린은 변수를 선언할 때 타입을 변수명 뒤에 :(타입명)으로 입력한다. 선언만 해놓을 때도 마찬가지인데 초기화값에 따라서 추론하기 때문에 타입을 굳이 명시하지 않아도 된다. val myName: String = "Burt.K" val myName = "Burt.K" val은 value의 약자로 바뀌는 것이 고정적인거라서 수정이나 불가능하다. 상수 fun main() { println(ExamClass.CONST_VAL) } class ExamClass(){ companion object{ const val CONST_VAL = 100 } } 우리가 아는 불변하는 값이 상수다. 예.. 2023. 12. 1.
TIL: readLine() , 매개변수 디폴트(기본값) 설정 var answer: String = readLine()!! var answer: String? = readLine() 키보드 입력을 받는 함수이다. 타입은 String? 으로 null값이 올수도 있다. class Custom(money:Int=50000000) { // =5000...이 디폴트값이다. var haveMoney:Int=money fun spend(money:Int){ haveMoney-=money } } class Custom(name:String="unknown") { // ="unknown"이 디폴트값이다. var haveMoney:Int=money fun spend(money:Int){ haveMoney-=money } } 매개변수 뒤에 = 하고 뒤에 붙여주면 된다. 2023. 11. 30.
TIL: 코틀린에서 !!의 뜻 코테에서 array[i]!!.get() 이런 식으로 뒤에 !!를 붙이는 답변을 봤다. 찾아보니 !! 의 뜻은 null이 아니다 라고 선언하는 것이다. val name1: String? = "과일" val name2: String = name1 // 에러 val name3: String? = name1 // 정상 val name4: String = name1!! // 정상 위에 예제를 보다싶이 String 과 String?은 같은 타입이 아니다. String?을 String에 넣어주려면 뒤에 !!을 붙어주어서 null일 수 없다고 알려줘야 넣을 수 있다. 2023. 11. 29.
TIL: 안드로이드 스튜디오 TableLayout, 프로젝트 생성 시 빨간 글씨 TableLayout //행 //열 //열 //행 //열 //열 계산기를 만들려다가 LinearLayout 보다는 TableLayout이 더 적당한 거 같아서 바꿨다. 말 그대로 표처럼 레이아웃을 짜고 싶을 때 쓰면 좋을 거 같다. android:layout_weight="1" weight는 50dp, 100dp 이렇게 딱 떨어지는 값이 아니라 비율로 화면을 분활하고 싶을 때 사용한다. weight의 총합이 10일 때 1은 10분의 1만큼 차지한다. 상대적인 값이다. 프로젝트 생성 시 빨간 글씨 new로 생성했는데 파일 전체가 빨간 글씨가 떴다. 분명 문법오류 없는데... 왜 그런가 했더니 git에 등록된 폴더에서 생성했기 때문에 그런거였다. 구글링해서 해결방법을 찾아봤지만 나한테 적용가능한 해결법은 없.. 2023. 11. 28.
TIL: Kotlin컨벤션 Kotlin 컨벤션 언어에 맞춤법이 있듯이 코드를 치는데도 맞춤법 비스무리한 게 있다. 이렇게 쓰자하고 합의한 것들. 이렇게 안해도 작동은 하지만 내가 아닌 다른 사람들이 볼 때 매우매우 불편하므로 지켜주는 게 좋다. 예를 들자면 "이렇게붙여써도뜻은문제가없지만읽을때매우불편하다" 와 "이렇게 붙여 써도 뜻은 문제가 없지만 읽을 때 매우불편하다" 중에 어떤 것이 더 읽기 편한가? 그러니 되도록 가이드에 맞게 쓰는 게 좋다. 소스파일 UTF-8 인코딩 이클립스를 처음 깔고 파일을 열었을 때 외계어가 나왔던 기억이 난다... 표준으로 맞춰준다. 이름 지정 // MyClass.kt class MyClass { } // Bar.kt class Bar { } fun Runnable.toBar(): Bar = // ….. 2023. 11. 27.
코틀린 1.repeat() 2.count() 3.함수 안될 때 .repeat() /** * Executes the given function [action] specified number of [times]. * * A zero-based index of current iteration is passed as a parameter to [action]. * * @sample samples.misc.ControlFlow.repeat */ @kotlin.internal.InlineOnly public inline fun repeat(times: Int, action: (Int) -> Unit) { contract { callsInPlace(action) } for (index in 0 until times) { action(index) } } 사용 예시 // greet.. 2023. 11. 24.
프로그래머스: 옹알이 (2) class Solution { fun solution(babbling: Array): Int { var answer: Int = 0 val pos = arrayOf( "aya", "ye", "woo", "ma") val pos2 = arrayOf( "ayaaya", "yeye", "woowoo", "mama") for(str in babbling){ var word = str for(i in pos.indices){ if(word.contains(pos2[i])){ continue }else if(word.contains(pos[i])){ word=word.replace(pos[i],"|") }else{ continue } } word=word.replace("|","") if(word == ""){ a.. 2023. 11. 23.
프로그래머스: 기사단원의 무기 import kotlin.math.sqrt class Solution { fun findDivisor (n:Int): Int{ var answer:Int = 0 var array=intArrayOf() var sqrtNum = sqrt(n.toDouble()).toInt() for (i in 1 .. sqrtNum ){ if(n%i==0){ array+=i if(n/i != i) array+=n/i } } answer=array.size return answer } fun solution(number: Int, limit: Int, power: Int): Int { var array= intArrayOf() for(n in 1 .. number){ if(findDivisor(n) 2023. 11. 22.
maxOrNull, minOrNull. Kotlin 분명 블로그 같은데서 min(),max()를 하면 된다고 했는데 안먹혀서 찾아보니 minOrNull() maxOrNull() 이라고 치니 작동한다. 코틀린 14.0부터 바뀌었다고 한다. 빈 리스트에서 사용시 null을 반환한다. 2023. 11. 21.