Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
x = 1
println x

x = new java.util.Date()
println x

x = -3.1499392
println x

x = false
println x

x = "Hi"
println x

Lists 와 Maps

The Groovy language has built-in support for two important data types, lists and maps (Lists can be operated as arrays in Java language). Lists are used to store ordered collections of data. For example an integer list of your favorite integers might look like thisGroovy는 두 가지 중요한 데이터 타입인 List와 Map에 대해서 언어 차원에서 지원하고 있습니다. List는 자바 언어에서 배열을 다루는 것 처럼 다룰 수 있습니다. List는 순서 있는 데이터 모음을 취급하기 위해 사용됩니다. 예를 들어 정수의 목록은 다음과 같이 표현됩니다:

Code Block
myList = [1776, -1, 33, 99, 0, 928734928763]

You can access a given item in the list with square bracket notation (indexes start at 0)List에 담긴 항목에 접근하려면 꺾인 괄호를 사용합니다. 인덱스는 0번부터 시작합니다:

Code Block
println myList[0]

Should result in this output위 코드의 결과는 다음과 같습니다:

Code Block
1776

You can get the length of the list with the List의 길이를 알고 싶으면 "size" method메서드를 호출하세요:

Code Block
println myList.size()

Should print out결과는 다음과 같습니다:

Code Block
6

But generally you shouldn't need the length, because unlike Java, the preferred method to loop over all the elements in an list is to use the "each" method, which is described below in the "Code as Data" section.

Another native data structure is called a map. A map is used to store "associative arrays" or "dictionaries". That is unordered collections of heterogeneous, named data. For example, let's say we wanted to store names with IQ scores we might have하지만 보통은 길이를 알아낼 필요가 없습니다. 자바와는 달리 "each" 메서드를 사용하면 List의 모든 항목에 대해 루프를 돌수 있기 때문입니다. 자세한 설명은 아래 "데이터로써의 코드" 부분을 참고하세요.

또 다른 데이터 타입은 Map 입니다. Map은 "associative array" 혹은 "사전(dictionary)"을 표현하기 위해 사용됩니다. 즉 순서는 없고 이름이 붙어있는 데이터의 모음입니다. 예를 들어 이름과 IQ의 쌍을 저장하려고 하면 다음과 같이 씁니다:

Code Block
scores = [ "Brett":100, "Pete":"Did not finish", "Andrew":86.87934 ]

Note that each of the values stored in the map is of a different type. Brett's is an integer, Pete's is a string, and Andrew's is a floating point number. We can access the values in a map in two main waysMap에 저장되는 각 값들은 서로 타입이 달라도 됩니다. Brett은 Integer, Pete는 String, Andrew는 부동소수점(floating point) 입니다. Map의 값에 접근하려면 다음 두 가지 방법을 사용할 수 있습니다:

Code Block
 
println scores["Pete"] 
println scores.Pete

Should produce the output결과는 다음과 같습니다:

Code Block
Did not finish
Did not finish

To add data to a map, the syntax is similar to adding values to an list. For example, if Pete re-took the IQ test and got a 3, we mightMap에 자료를 추가할 때의 문법은 List에 값을 추가하는 문법과 비슷합니다: 예를 들어 Pete가 IQ 테스트를 다시 받아서 3점을 받았다면 다음과 같이 쓰면 됩니다:

Code Block
scores["Pete"] = 3

Then later when we get the value back out, it will be 3.이제 다음과 같이 다시 값을 출력해보면:

Code Block
println scores["Pete"]

should print out 3.

Also as an aside, you can create an empty map or an empty list with the following3이 출력됩니다.

빈 Map이나 빈 List를 만들려면 아래와 같이 하면 됩니다:

Code Block
emptyMap = [:]
emptyList = []

...