프로그래밍 (112) 썸네일형 리스트형 코틀린 - 데이터 클래스 우리는 자주 데이터를 보관하는 것을 주된 목적으로하는 클래스를 자주 만듭니다. 이러한 클래스에서 일부 표준 기능 및 유틸리티 기능은 데이터에서 기계적으로 파생 될 수 있습니다. 코틀린에서 이것을 데이터 클래스 라고하며 data 다음 과 같이 표시됩니다 . data class User(val name: String, val age: Int) 컴파일러는 기본 생성자에서 선언 된 모든 속성에서 다음 멤버를 자동으로 파생시킵니다. equals()/ hashCode()쌍; toString()형태의 "User(name=John, age=42)"; componentN()선언 순서대로 속성에 해당하는 함수 ; copy() 기능 (아래 참조). 생성 된 코드의 일관성과 의미있는 동작을 보장하려면 데이터 클래스가 다음 요.. 코틀린 - 확장 C # 및 Gosu와 유사한 코틀린은 클래스에서 상속하거나 데코레이터와 같은 모든 유형의 디자인 패턴을 사용하지 않고도 새로운 기능으로 클래스를 확장 할 수있는 기능을 제공합니다. 이것은 확장 이라는 특별한 선언을 통해 이루어진다 . 코틀린은 확장 기능 과 확장 속성을 지원 합니다 . 확장 함수 확장 함수을 선언하려면 수신자 유형 , 즉 확장되는 유형 을 접두어로 사용해야합니다 . 다음은 swap 함수를 다음에 추가합니다 MutableList . fun MutableList.swap(index1: Int, index2: Int) { val tmp = this[index1] // 'this'는 리스트에 해당합니다. this[index1] = this[index2] this[index2] = tmp } 확장.. 코틀린 - 함수 함수 선언코틀린의 함수는 fun 키워드를 사용하여 선언됩니다 .fun double(x: Int): Int { return 2*x } 함수 사용법함수 호출은 전통적인 방식을 사용합니다.val result = double(2) 멤버 함수를 호출하면 점 표기법이 사용됩니다.Sample().foo() // Sample 클래스의 인스턴스를 생성하고 foo호출 파라미터함수 매개 변수는 파스칼 표기법, 즉 name : type을 사용하여 정의됩니다 . 매개 변수는 쉼표로 구분됩니다. 각 매개 변수는 명시 적으로 입력해야합니다.fun powerOf(number: Int, exponent: Int) { ... } 기본 인수함수 매개 변수는 기본값을 가질 수 있으며 해당 인수가 생략 될 때 사용됩니다. 이렇게하면 다른 언.. 코틀린 - 고차 함수와 람다 고차 함수고차 함수는 함수를 매개 변수로 사용하거나 함수를 반환하는 함수입니다. 그러한 함수의 좋은 예는 lock()잠금 객체와 함수 를 취하여 잠금을 획득하고, 함수를 실행하고 잠금을 해제하는 것입니다.fun lock(lock: Lock, body: () -> T): T { lock.lock() try { return body() } finally { lock.unlock() } } 의 위의 코드를 검사하자 : body이 기능 유형을 : () -> T그래서 매개 변수를 사용하지 않는 입력의 값을 반환하는 기능을해야하는데 T. 그것은 try 블록 안에서 호출 되며, lock에 의해 보호되고 그 결과는 lock()함수에 의해 반환됩니다 .우리가 호출하기를 원한다면 lock(), 다른 함수를 인자로 전달할 .. 코틀린 - 인라인 함수 고차 함수를 사용하면 특정 런타임 패널티가 부과됩니다. 각 함수는 객체이며 클로저, 즉 함수 본문에서 액세스되는 변수를 캡처합니다. 메모리 할당 (함수 객체와 클래스 용)과 가상 호출은 런타임 오버 헤드를 초래합니다.그러나 많은 경우에 이런 종류의 오버 헤드는 람다식을 인라인함으로써 제거 될 수 있습니다. 아래에 표시된 함수는이 상황의 좋은 예입니다. 즉,이 lock()기능은 전화 사이트에서 쉽게 인라인 될 수 있습니다. 다음과 같은 경우를 고려하십시오.lock(l) { foo() } 매개 변수에 대한 함수 객체를 만들고 호출을 생성하는 대신 컴파일러에서 다음 코드를 생성 할 수 있습니다.l.lock() try { foo() } finally { l.unlock() } 우리가 처음부터 원한 것이 아닌가?.. 코틀린 - 코루틴 Coroutines는 Kotlin 1.1+에서 실험버전 입니다. 세부 사항은 아래를 참조하십시오 일부 API는 네트워크 IO, 파일 IO, CPU 또는 GPU 집약적 인 작업 등과 같은 장기 실행 작업을 시작하고 호출자가 완료 될 때까지 차단하도록 요청합니다. 코 루틴은 스레드를 차단하지 않고 더 저렴하고 제어 가능한 작업 ( 코 루틴 중단) 으로 바꾸는 방법을 제공합니다 .코루틴은 라이브러리에 합병증을 넣어 비동기 프로그래밍을 단순화합니다. 프로그램의 논리는 코 루틴 (coroutine)에서 순차적으로 표현 될 수 있으며 기본 라이브러리는 비동기를 파악할 것입니다. 라이브러리는 사용자 코드의 관련 부분을 콜백으로 래핑하고, 관련 이벤트를 구독하고, 다른 스레드 (또는 다른 시스템)에서 실행을 예약 할 .. 코틀린 - 분리 선언 분리 선언때로는 예를 들어, 객체를 변수에 분리하여 할당하는 것이 편리할 수도 있습니다.val (name, age) = person 이 구문을 분리 선언 이라고합니다 . 분리 선언은 한 번에 여러 변수를 만듭니다. 우리는 두 개의 새로운 변수를 선언했습니다 : name과 age, 그리고 독립적으로 사용할 수 있습니다 :println(name) println(age) 분리 선언은 다음 코드로 컴파일됩니다.val name = person.component1() val age = person.component2() component1()와 component2()함수는 코틀린에서 널리 사용되는 관례 규칙 의 또 다른 예이다 ( + 와*, for 루프 와 같은 연산자 참조 ). 필요한 수의 컴포넌트 함수가 호출 .. 컬렉션 : List, Set, Map 많은 언어와 달리, 코틀린은 변경 가능한 콜렉션과 변경 불가능한 콜렉션 (List, Set, Map 등)을 구별합니다. 컬렉션을 수정 할 수있는 정확한 시간을 제어하면 버그를 제거하고 좋은 API를 설계하는 데 유용합니다. 변경 가능 콜렉션의 읽기 전용 뷰 와 실제로 변경 불가능한 콜렉션 간의 차이점을 이해하는 것이 중요합니다 . 둘 다 쉽게 만들 수 있지만 타입 시스템은 차이를 표현하지 않으므로 관련성이있는 경우 해당 내용을 추적하는 것이 당신에게 달려 있습니다. 코틀린의 List타입은 size, get과 같은 읽기 전용 등의 작업을 제공하는 인터페이스입니다. 자바에서와 마찬가지로, Iterable를 상속한 Collection을 상속합니다. List을 변경하는 메소드는 MutableList에 있습니다 .. JAVA 설치- CentOS, ubuntu, mac JAVA 설치- CentOS, ubuntu, mac http://java.sun.com CentOS yum list | grep jdksudo yum remove java-1.7.0-openjdk.x86_64 -ysudo yum install java-1.8.0-openjdk-devel.x86_64 -y Ubuntu openjdk sudo add-apt-repository ppa:openjdk-r/ppasudo apt-get updatesudo apt-get install openjdk-8-jdk -y Ubuntu oracle-jdk sudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo apt-get install oracle-java8.. 자바 디자인 패턴 튜토리얼 - 자바 디자인 패턴 소개 디자인 패턴은 특정 문제 / 작업을 해결하기위한 입증 된 솔루션 입니다.예를 들어 인스턴스를 하나만 만들고 다른 모든 클래스에서 단일 객체를 사용할 수있는 클래스를 만들려면 싱글 톤 디자인 패턴을 사용하면 됩니다..디자인 패턴은 프로그래밍 언어에 독립적이며 일반적인 객체 지향 디자인 문제를 해결하기위한 것입니다.디자인 패턴은 구현이 아니라 아이디어를 나타냅니다.디자인 패턴을 사용하여 코드를 보다 유연하고 재사용 가능하며 유지 보수 쉽게 할 수 있습니다.자바 자체는 내부적으로 디자인 패턴을 따릅니다.핵심 자바에는 세 가지 유형의 디자인 패턴이 있으며, 이들 패턴은 하위 파트로 나뉩니다.창조적 인 디자인 패턴팩토리 패턴추상 팩토리 패턴싱글톤 패턴프로토 타입 패턴빌드 패턴.구조 설계 패턴어댑터 패턴브릿지 패턴.. 이전 1 ··· 6 7 8 9 10 11 12 다음