Skip to content
Skip to breadcrumbs
Skip to header menu
Skip to action menu
Skip to quick search
Quick Search
Browse
Pages
Blog
Labels
Attachments
Mail
Advanced
What’s New
Space Directory
Feed Builder
Keyboard Shortcuts
Confluence Gadgets
Log In
Dashboard
Groovy
Copy Page
You are not logged in. Any changes you make will be marked as
anonymous
. You may want to
Log In
if you already have an account. You can also
Sign Up
for a new account.
This page is being edited by
.
Paragraph
Paragraph
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Preformatted
Quote
Bold
Italic
Underline
More colours
Strikethrough
Subscript
Superscript
Monospace
Clear Formatting
Bullet list
Numbered list
Outdent
Indent
Align left
Align center
Align right
Link
Table
Insert
Insert Content
Image
Link
Attachment
Symbol
Emoticon
Wiki Markup
Horizontal rule
tinymce.confluence.insert_menu.macro_desc
Info
JIRA Issue
Status
Gallery
Tasklist
Table of Contents
Other Macros
Page Layout
No Layout
Two column (simple)
Two column (simple, left sidebar)
Two column (simple, right sidebar)
Three column (simple)
Two column
Two column (left sidebar)
Two column (right sidebar)
Three column
Three column (left and right sidebars)
Undo
Redo
Find/Replace
Keyboard Shortcuts Help
<p>Groovy는 숫자, 콜랙션, Map 등의 다양한 자료 구조를 더 쉽게 사용할 수 있게 하기 위해 연산자 재정의(operator overloading)를 지원합니다.</p> <p>Groovy의 다양한 연산자들은 각각 대응되는 보통의 자바 메서드 이름을 가지고 있습니다. 따라서 자바 혹은 Groovy 클래스에 해당 이름의 메서드를 추가하면 Groovy의 연산자 재정의를 이용할 수 있습니다. 다음 표는 Groovy의 각 연산자와 그에 대응되는 메서드 이름을 나타냅니다:</p> <table class="confluenceTable"><tbody> <tr> <th class="confluenceTh"><p> 연산자 </p></th> <th class="confluenceTh"><p> 메서드 </p></th> </tr> <tr> <td class="confluenceTd"><p> a + b </p></td> <td class="confluenceTd"><p> a.plus(b) </p></td> </tr> <tr> <td class="confluenceTd"><p> a - b </p></td> <td class="confluenceTd"><p> a.minus(b) </p></td> </tr> <tr> <td class="confluenceTd"><p> a * b </p></td> <td class="confluenceTd"><p> a.multiply(b) </p></td> </tr> <tr> <td class="confluenceTd"><p> a / b </p></td> <td class="confluenceTd"><p> a.divide(b) </p></td> </tr> <tr> <td class="confluenceTd"><p> a++ or ++a </p></td> <td class="confluenceTd"><p> a.next() </p></td> </tr> <tr> <td class="confluenceTd"><p> a-- or --a </p></td> <td class="confluenceTd"><p> a.previous() </p></td> </tr> <tr> <td class="confluenceTd"><p> a[b] </p></td> <td class="confluenceTd"><p> a.getAt(b) </p></td> </tr> <tr> <td class="confluenceTd"><p> a[b] = c </p></td> <td class="confluenceTd"><p> a.putAt(b, c) </p></td> </tr> <tr> <td class="confluenceTd"><p> a << b </p></td> <td class="confluenceTd"><p> a.leftShift(b) </p></td> </tr> </tbody></table> <p>다음 모든 비교 연산자는 null을 특별히 처리해서 <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html">java.lang.NullPointerException</a> 가 발생하는 것을 방지합니다:</p> <table class="confluenceTable"><tbody> <tr> <th class="confluenceTh"><p> Operator </p></th> <th class="confluenceTh"><p> Method </p></th> </tr> <tr> <td class="confluenceTd"><p> a == b </p></td> <td class="confluenceTd"><p> a.equals(b) </p></td> </tr> <tr> <td class="confluenceTd"><p> a != b </p></td> <td class="confluenceTd"><p> ! a.equals(b) </p></td> </tr> <tr> <td class="confluenceTd"><p> a === b </p></td> <td class="confluenceTd"><p> 자바에서의 a == b (a와 b가 동일한 인스턴스를 지칭하고 있음) </p></td> </tr> <tr> <td class="confluenceTd"><p> a <=> b </p></td> <td class="confluenceTd"><p> a.compareTo(b) </p></td> </tr> <tr> <td class="confluenceTd"><p> a > b </p></td> <td class="confluenceTd"><p> a.compareTo(b) > 0 </p></td> </tr> <tr> <td class="confluenceTd"><p> a >= b </p></td> <td class="confluenceTd"><p> a.compareTo(b) >= 0 </p></td> </tr> <tr> <td class="confluenceTd"><p> a < b </p></td> <td class="confluenceTd"><p> a.compareTo(b) < 0 </p></td> </tr> <tr> <td class="confluenceTd"><p> a <= b </p></td> <td class="confluenceTd"><p> a.compareTo(b) <= 0 </p></td> </tr> </tbody></table> <h2>연산자에 대한 비고</h2> <p>Groovy에서는 비교 연산자들이 null에 대해 특별한 처리를 합니다. 따라서 a == b는 a 혹은 b 혹은 둘 다가 null인 경우 모두 결코 NullPointerException을 발생시키지 않습니다:</p> <table class="wysiwyg-macro" data-macro-name="code" data-macro-default-parameter="java" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGU6amF2YX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> def a = null def b = "foo" assert a != b assert b != a assert a == null </pre></td></tr></table> <p>또한 서로 다른 숫자 타입에 대해 비교가 수행될 경우 가장 큰 숫자 타입으로 변환된 후 비교가 진행됩니다. 따라서 Groovy에서는 다음 코드가 유효합니다:</p> <table class="wysiwyg-macro" data-macro-name="code" data-macro-default-parameter="java" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGU6amF2YX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> Byte a = 12 Double b = 10 assert a instanceof Byte assert b instanceof Double assert a > b </pre></td></tr></table>
Please type the word appearing in the picture.
Attachments
Labels
Location
Watch this page
< Edit
Preview >
Loading…
Save
Cancel
Next hint
search
attachments
weblink
advanced