groovy 패키지 (PK) Java IOC
화 해 를 구하 다
def sum(n)
{
total = 0
for(int i = 2; i <= n; i += 2)
{
total += i
}
total
}
println
"Sum of even numbers from 1 to 10 is ${sum(10)}"
곱셈
def product(n)
{
prod = 1
for(int i = 2; i <= n; i += 2)
{
prod *= i
}
prod
}
println
"Product of even numbers from 1 to 10 is ${product(10)}"
def sqr(n)
{
squared = []
for(int i = 2; i <= n; i += 2)
{
squared << i ** 2
}
squared
}
위의 3 단 코드 는 간단 한 연산 일 뿐 입 니 다. 만약 에 우리 가 일반적인 쓰기 방법 에 따라 이 렇 습 니 다. 만약 에 당신 이 코드 만 쓸 줄 안다 면 소프트웨어 개발 을 배우 지 않 는 것 이 좋 습 니 다. 왜 우 리 는 가능 한 한 자신의 일 을 간단하게 해 야 합 니까? 당신 은 3 개의 연산 이 3 가지 방법 을 써 야 한다 고 생각 하지 않 습 니까?
만약 에 우리 가 IOC 를 생각해 보면 한 방법 으로 정 의 된 매개 변수 에서 인터페이스 유형 을 정의 한 다음 에 실제 호출 에서 구체 적 인 유형 을 이 방법 에 전달 합 니 다.이것 은 IOC 의 구현 이다!
그럼 이제 폐쇄 를 살 펴 보 겠 습 니 다.
def pickEven(n, block)
{
for(int i = 2; i <= n; i += 2)
{
block(i)
}
}
pickEven(10, { println it } )
위의 코드 는 자바 의 뜻 에 따라 이전 IOC 의 실현 이 라 고 할 수 있 습 니 다. 왜 우리 의 block 은 추상 적 인 유형 입 니까? 맨 아래 에 pick Even (10, {println it}) 방법 을 호출 하여 block 을 폐쇄 {println it} 로 대체 하 였 습 니까? (groovy 의 폐쇄 도 대상 이 고 모든 것 이 대상 입 니 다) {println it} 은 실제 유형 입 니 다. 그 렇 죠?그렇다면 위의 3 단 코드 는 모두 폐쇄 로 이 루어 지 는 것 은 어 떨 까?
pickEven(10) { println it }
먼저 설명 하 세 요.
이 코드 {println it} 방법 밖 에 있 습 니 다. groovy 에서 패 킷 을 닫 는 것 이 마지막 매개 변수 라면 방법 외 에 추출 할 수 있 습 니 다.
화 해 를 구하 다
total = 0
pickEven(10) { total += it }
println
"Sum of even numbers from 1 to 10 is ${total}"
곱셈
product = 1
pickEven(10) { product *= it }
println
"Product of even numbers from 1 to 10 is ${product}"
어 땠 어 요?
groovy 의 폐쇄 는 자바 의 IOC 원리 보다 더 WOW!!!!
패 킷 을 닫 는 것 은 코드 블록 이 고 groovy 에서 패 킷 을 닫 는 것 이 대상 입 니 다. 그러면 우 리 는 먼저 방법 을 정의 할 수 있 습 니 다. 방법 중의 하 나 는 패 킷 을 닫 는 것 입 니 다. (패 킷 을 마지막 매개 변수 위치, 개인 의견 으로 정의 하 는 것 이 좋 습 니 다. 그러면 우 리 는 간략하게 쓸 수 있 기 때 문 입 니 다) 그러면 A 방법 은 마지막 매개 변수 위치 에서 패 킷 을 정의 합 니 다.B 방법 은 A 를 호출 할 때 A 방법 이 해 야 할 일 을 A () {XXX} 의 XXX 에 적 을 수 있 습 니 다!!
물건 은 여기까지 썼 습 니 다. 모든 사람의 생각 을 이해 할 수 있 는 지 없 는 지 는 groovy 에서 즐거움 을 찾 으 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.