2017-11-03 11 views
0

놀이터를 사용하고 월간 온도 (예 : 1 월 최고 온도 30, 최저 온도 -2)를 사용하는 것이 목표이며 온도의 튜플 값을 가진 사전뿐만 아니라 문자열의 배열을 사용하십시오.신속하게 함수의 매개 변수를 사용하여 튜플 값을 얻는 방법

지금까지 나는 달 배열 Months: [String]을 가지고 있습니다. Temperatures: [String, (temp1: Int, temp2: Int)의 사전뿐만 아니라. 나는 사전을 설정하는 데 사용하려고하는 함수 SetMonthlyTemp(month: String, temp1: Int, temp2: Int)이 있지만 그렇게하는 방법을 알아낼 수 없습니다. 저는 사전에 완전히 익숙하지 않았고 지난 주에 한 번만 튜플을 사용했습니다. 이것은 독립형 속성이었습니다. 튜플을 섭취하기 위해이 사전을 설정하는 것과 관련된 도움은 (Int, Int)이 좋습니다! 분명히 결과를 출력하는 디스플레이 방법이있을 것입니다. 그러나 그것에 대한 정보를 찾는 데 문제가 없습니다.

+0

을 데이터를 설명합니다 열거를 사용하는 것이 좋습니다 다음 모른다. – ryantxr

+0

나는 몇 시간 후에 그렇게 할 수있다. 현재 일하고 있지만 점심을 먹고 집에 오기 전에 미리 게시하고 싶습니다. 아니면 시간이 그 전에 손으로 그것을 할 수 있습니다 – Noobprogrammer626

+0

'클래스 YearlyTemps { var에 달 : [문자열] var에 온도 : [문자열 (TEMP1 : INT, TEMP2 : INT)] = [:] FUNC의 SetMonthlyTemps (월 : 문자열, TEMP1 : INT, TEMP2 : INT) -> 무효 ) ( FUNC의 ShowResult {나는 사전을 을 채우는 방법을 알아낼 수 없습니다 여기 // 뒤죽박죽 엉망} -> 무효 { // 키를 아직 사용하지 않아서 잘못 인쇄 했음 } } '코멘트에 혼란 스럽지만 여기에있는 휴대 전화는 짜증이났다 – Noobprogrammer626

답변

0

는 즐기십시오 :

var temperatures = [String: (Int, Int)]() 
temperatures["Jan"] = (10, 20) 
temperatures["Feb"] = (-1, -16) 
// setting temp 1 for January (note: "Jan" entry must exist in dictionary) 
temperatures["Jan"]?.0 = 30 

// setter ;) 
func setMonthlyTemp(month: String, temp1: Int, temp2: Int) { 
    temperatures[month] = (temp1, temp2) 
} 

액세스 : 내 관점에서

temperatures["Feb"]  // whole tuple for February 
temperatures["Jan"]?.0 // first temperature for January 
temperatures["Feb"]?.1 // second temperature for February 
+0

와우는 사전을 쉽게 채울 수 있습니까? 이제는 여러 달을 키로 사용하여 모든 것을 호출하는 방법을 알아 내야합니다. 당신은 사전을 정렬 할 수 없기 때문에 – Noobprogrammer626

0

당신은 예를 들어, 설정 제한된 데이터로 작업하는 경우 월, 주, 일의 종류, 나는 당신이 코드를 게시하는 경우 그것은 매우 도움이 될 것 튜플 후 훨씬 더 & 문자열

enum Month { 
    case january 
    case february 
// ... 
    case november 
    case december 

    static let allMonths = [january, february, /*...*/ november, december] 
} 

struct MonthlyTemperature { 
    let month: Month 
    var lowestTemp: Double? 
    var highestTemp: Double? 

    init(month: Month, lowest: Double? = nil, highest: Double? = nil) { 
    self.month = month 
    self.lowestTemp = lowest 
    self.highestTemp = highest 
    } 
} 

let temparatures = [MonthlyTemperature]() 
// ... 
var dict = Dictionary(grouping: temparatures, by: { $0.month }) 

Month.allMonths.forEach { month in 
    dict.updateValue(dict[month] ?? [], forKey: month) 
} 
+0

나는 위대한 모든 작품을 확신하지만이 목적을 위해 특정 객체와 함수를 사용해야합니다 – Noobprogrammer626

+0

@ Noobprogrammer626 그것은 튜플보다 유연하고 장식 적입니다. –