본문 바로가기

Language

(105)
[Kotlin] 형변환과 배열 형변환 함수 코틀린은 형변환시 발생할 수 있는 오류를 막기 위해 다른 언어들이 지원하는 ‘암시적 형변환’은 지원하지 않고 ‘명시적 형변환’만 지원함 toByte() / toShort() / toInt() / toLong() / toFloat() / toDouble()/ toChar() var a: Int = 54321 var b: Long = a // Type mismatch var a: Int = 54321 var b: Long = a.toLong() 배열 배열 자료형은 Array 배열 초기화 var intArr = arrayOf(1, 2, 3, 4, 5) // 특정한 크기의 공간을 가지는 비어있는 배열 var nullArr = arrayOfNulls(5) 배열 할당, 사용 intArr[2] = 8 p..
[Kotlin] 변수와 자료형 명명 규칙 클래스 이름은 파스칼 표기법 (모든 단어를 대문자로 시작) ex. ClassName 함수나 변수 이름은 카멜 표기법 (첫 단어만 소문자로 시작) ex. functionName 변수의 선언 var : 일반적으로 통용되는 변수. 언제든지 읽기 쓰기가 가능함 val : 선언시에만 초기화 가능. 중간에 값을 변경할 수 없음 변수는 선언위치에 따라 Property(속성) : 클래스에 선언된 변수 Local Variable(로컬변수) : 이 외의 Scope 내에 선언된 변수 변수 초기화 고전적인 언어들은 변수가 선언된 후 초기화 되지 않으면 기본값으로 초기화되거나 값이 할당되지 않았다는 표시로 null 값을 가지게 된다. but 코틀린은 기본 변수에서 null을 허용하지 않으며 변수에 값을 할당하지 않은..
[C++] 문자열 split 함수 구현하기 C++에는 string을 나누는 split 함수가 존재하지 않기 때문에 직접 구현해서 사용해야 한다. split 함수를 구현하는 많은 방법이 있지만, 그 중 sstream을 사용하는 방법은 다음과 같다. #include #include #include using namespace std; vector split(string str, char delimiter); int main(){ string test = "min seon kim"; vector result = split(test, ' '); for (int i=0;i
[Python] Idle에서 패키지 설치하기 cmd에서 설치한 패키지가 idle에서 import 되지 않은 경우 사용한 방법이다. (이건 결국 환경변수 문제였음...) idle에서 다음 코드를 실행하면 된다. import pip def install(package): pip.main(['install', package]) # Example if __name__ == '__main__': install('설치할 패키지')
[Java] Optional<T> 클래스 Optional 개념 Java8부터 지원하는 Optional 클래스는 null이 올 수 있는 값을 감싸는 Wrapper 클래스로, NPE(Null Pointer Exception)이 발생하지 않도록 도와준다. * NPE(Null Pointer Exception)이란? 개발할 때 가장 많이 발생하는 예외 중 하나이다. NPE를 피하려면 null 여부를 검사해야 하는데, null 검사를 해야하는 변수가 많은 경우 코드가 복잡해지고 번거롭다. 그래서 null 대신 초기값을 사용하기를 권장하기도 한다. List names = getNames(); names.sort(); // names가 null이라면 NPE 발생 List names = getNames(); // NPE를 방지하기 위해 null 검사 해야함 i..
[Java] 메소드 레퍼런스(Method reference, ::의 의미) 메소드 레퍼런스란? lambda 표현식을 더 간단하게 표현하는 방법이다. 예를 들어, 다음은 람다식으로 Hello를 출력하는 코드이다. (Consumer는 어떤 객체를 입력받아 void를 출력시키는 함수형 인터페이스이다.) Consumer func = text -> System.out.println(text); func.accept("Hello"); 위의 람다식은 다음과 같이 System.out::println이라는 메소드 레퍼런스로 표현할 수 있다. Consumer func = System.out::println; func.accept("Hello"); 메소드 레퍼런스는 ClassName::MethodName 형식으로 입력한다. 메소드를 호출하는 것이지만 괄호는 생략한다. 위의 예제처럼, 메소드 레퍼런..
[Java] Stream API - filter, map, flatMap Stream API란? java8부터 추가된 API로 함수형 인터페이스(람다식)를 적용하여 컬렉션과 같은 저장요소를 반복적으로 처리할 수 있는 기능이다. 1. filter filter는 말 그대로 특정조건으로 스트림의 컨텐츠를 필터링하는 것이다. 함수에 filter(조건)으로 조건을 넣으면 된다. 아래 코드를 보면 c로 시작하는 문자열만 필터링하도록 조건을 설정하였고 이 조건에 해당하는 문자의 stream이 리턴되었다. List list = Arrays.asList("a1", "a2", "b1", "b2", "c2", "c1", "c3"); Stream stream1 = list.stream(); Stream filtered = stream1.filer(s -> s.startsWith("c")); fil..
[Java] 람다식(lambda expression) 람다식이란? 람다 함수는 java8부터 추가된 기능으로 익명 객체를 생성하기 위한 표현식을 말한다. 람다식 이전 public interface Goods{ public void doSome(); } public class Computer implements Goods{ @Override public void doSome() { System.out.println("do Operation!"); } } public class Main{ public static void main(String[] args){ Goods com = new Computer(); com.doSome(); } } 기존 자바에서 interface를 이용해 다형성을 제공하기 위해서는 interface를 만들고, 그것을 구현한 class를..