Roen의 iOS 개발로그

[Array instance method] replaceSubrange(_:with:) (feat. repeatElement(_:count:))

by Steady On

replaceSubrange(_:with:)

Replaces a range of elements with the elements in the specified collection.

요소 범위를 지정된 컬렉션의 요소로 대체한다.

 

선언

mutating func replaceSubrange<C>(
    _ subrange: Range<Int>,
    with newElements: C
) where Element == C.Element, C : Collection

 

매개변수

subrange: The subrange of the array to replace. The start and end of a subrange must be valid indices of the array.

- 교체될 배열의 범위, 범위의 시작과 끝은 배열의 유효한 인덱스 내여야 한다.

 

newElements: The new elements to add to the array.

- 배열에 더해질 새 요소들

 

논의

This method has the effect of removing the specified range of elements from the array and inserting the new elements at the same location. The number of new elements need not match the number of elements being removed.

이 메서드는 배열에서 요소의 지정된 범위가 사라지고 같은 자리에 새 요소들이 삽입되는 효과가 있다. 새 요소의 개수는 사라지는 요소의 개수와 일치할 필요는 없다.


In this example, three elements in the middle of an array of integers are replaced by the five elements of a Repeated<Int> instance.
이 예시에서, 정수 배열의 가운데에 있는 세개의 요소는 Repeated<Int> 인스턴스의 5개 요소도 대체된다.

 var nums = [10, 20, 30, 40, 50]
 nums.replaceSubrange(1...3, with: repeatElement(1, count: 5))
 print(nums)
 // Prints "[10, 1, 1, 1, 1, 1, 50]"

If you pass a zero-length range as the subrange parameter, this method inserts the elements of newElements at subrange.startIndex. Calling the insert(contentsOf:at:) method instead is preferred.

만약 길이가 0인 범위를 subrange 매개변수에 넣는다면, 이 메서드는 newElements의 요소들을 범위의 첫번째 인덱스에 삽입할 것이다. 대신에 insert(contentsOf:at:) 메서드를 호출하는 것이 좋다.

Likewise, if you pass a zero-length collection as the newElements parameter, this method removes the elements in the given subrange without replacement. Calling the removeSubrange(_:) method instead is preferred.

이와 같이 길이가 0인 컬렉션을 newElements 매개변수에 넣는다면, 이 메서드는 대체하지 않고 주어진 범위의 요소들을 제거할 것이다. 대신에 removeSubrange(_:) 메서드를 호출하는 것이 좋다.

 


repeatElement(_:count:)

func

Creates a collection containing the specified number of the given element.

주어진 요소를 지정된 숫자만큼 담은 컬렉션을 생성한다.

 

선언

func repeatElement<T>(
    _ element: T,
    count n: Int
) -> Repeated<T>

 

매개변수

element: The element to repeat.

- 반복할 요소

 

count: The number of times to repeat element.

- 요소가 반복될 횟수

 

리턴값

A collection that contains count elements that are all element.
모두 element인 count만큼의 요소들을 담고 있는 컬렉션

 

논의

The following example creates a Repeated<Int> collection containing five zeroes:
아래의 예시는 5개의 0을 담은 Repeated<Int> 컬렉션을 만든다.

let zeroes = repeatElement(0, count: 5)
for x in zeroes {
    print(x)
}
// 0
// 0
// 0
// 0
// 0

참고자료

https://developer.apple.com/documentation/swift/array/replacesubrange(_:with:)-6a2ai 

 

replaceSubrange(_:with:) | Apple Developer Documentation

Replaces a range of elements with the elements in the specified collection.

developer.apple.com

https://developer.apple.com/documentation/swift/repeatelement(_:count:) 

 

repeatElement(_:count:) | Apple Developer Documentation

Creates a collection containing the specified number of the given element.

developer.apple.com

 

블로그의 정보

Roen의 iOS 개발로그

Steady On

활동하기