배열이 있습니다. 목표는 처음 두 개의 인덱스 값을 제거하는 것입니다. THEN은 최대 3 개의 값을 불러오고 나중에 평균을 구합니다. 내 문제는 두 번째와 세 번째 최대 값을 불러오고있다 내 방법은 최대 값을 호출 한 다음 최대 값을 제거하고 새 배열 array1을 호출 한 다음이 배열에서 최대 두 번째 값/최대 값이어야하는 최대 값을 호출하는 것입니다.플로트 타입의 값에는 열거 멤버가 없습니다.
// 최대 값 호출하기
var ammendedInitialArray = initialArray.dropFirst(2)
var max = Float(-1.0)
var stepmax1 = Int(-1)
for (index, value) in ammendedInitialArray.enumerated() {
if value > max{
max = value
stepmax1 = index
}
위 ***** 라인이 오류와 함께 제공
ammendedInitialArray1 = ammendedInitialArray.remove(at: stepmax1)
var max2 = Float(-1.0)
var stepmax2 = Int(-1)
*****for (index, value) in ammendedInitialArray1.enumerated{ *****
if value > max{
max2 = value
stepmax2 = index
}
작동합니다 Float 형의 값은 회원이
열거 없습니다글쎄, 나는 그것이 플로트가되는 것을 의미하지는 않았다. 배열이되기를 바란다.
저를 염려 여기에 몇 가지있다 : ** 1) ** 돈 float 리터럴을 float에 넘겨주지 않고 그냥 직접 할당하면됩니다 :'var max2 : Float = -1.0'. ** 2) Swift에서'-1','' "'등의 [sentinel values'] (https://en.wikipedia.org/wiki/Sentinel_value)를 사용하지 마십시오. 이것이 바로 선택 사항입니다. [언어 가이드] (https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html) – Alexander