fun getName(str: String?) { val name = str?: "It's me"}if (str != null) str els "It's me"
⚙️ 개발/Kotlin
더 이상 필요하지 않을 때 close 메소드를 사용해서 명시적으로 닫아야하는 리소스가 있다.InputStream, OutputStream / java.sql.Connection / sokey, Scanner 등이러한 모든 리소스들은 최종족으로 리소스에 대한 래퍼런스가 없어질 때 가비지 컬렉터가 처리하지만 굉장히 느리며 그동안 리소스를 유지하는데 비용이 많이 발생한다. 그래서 필요하지 않을 때 close 메소드를 호출해줘야한다.이때 코틀린에서 use를 사용하면 Closeable/AutoCloseable을 구현한 객체를 쉽고 안전하게 처리할 수 있다. 그리고 파일을 한 줄씩 읽어주는 useLinse를 사용하는 것이 좋다.
URL(대체로 HTTP)을 통해 서버와 통신할 때 URLConnection 또는 HttpURLConnection 클래스를 사용한다. URLConnection 클래스는 일반적인 URL에 대한 API를 제공하고, 서브 클래스로 HttpURLConnection가 있어 HTTP 고유의 기능에 대한 추가 기능을 제공한다. 두 클래스 모두 추상클랙스로 새 인스턴스를 만들 수 없다. 프로토콜이 http://인 경우 반환 객체로 HttpURLConnection 캐스팅할 수 있다.val url: URL? = URL(apiUrl)var huc: HttpURLConnection? = nullhuc = url.openConnection() as HttpURLConnection//연결 타임아웃huc.connectTimeout ..
String은 불변(immutable)객체로 문자열 삽입, 삭제, 수정이 많지 않을 때 사용하기 적합하다.StringBuffer와 StringBuilder는 가변(mutable)객체로 문자열 삽입, 삭제, 수정이 빈번하게 발생할 때 사용하기 적합하다. 단, StringBuffer는 멀티 스레드 환경에서 안전한 반면 StringBuilder는 단일 스레디 환경에서 뛰어나다.val sb = StringBuffer("https://wow.com?key=")sb.append("earth")