2016-05-13 15 views
10

से एक तत्व प्राप्त करें यदि मैं यहस्विफ्ट: एक टपल

var answer: (number: Int, good: Bool) 

मैं कैसे तत्वों में से एक मिलता है की तरह एक टपल है?

यह काम नहीं करता है:

answer["number"] 

मैं Swift: Get an array of element from an array of tuples के बाद यह सवाल मॉडलिंग रहा हूँ, लेकिन मेरे सवाल का थोड़ा और बुनियादी था। मुझे documentation में दफन किया गया जवाब मिला, इसलिए मैं नीचे दिए गए उत्तर को & में भविष्य में तेज़ी से खोजने के लिए एक प्रारूप जोड़ रहा हूं।

उत्तर

34

documentation (टुपल्स तक स्क्रॉल करें) के अनुसार, ऐसा करने के तीन तरीके हैं।

को देखते हुए

var answer: (number: Int, good: Bool) = (100, true) 

विधि 1

एक टपल भीतर तत्व चर नाम रखो।

let (firstElement, _) = answer 
let (_, secondElement) = answer 

या

let (firstElement, secondElement) = answer 

विधि 2

सूचकांक का प्रयोग करें।

let firstElement = answer.0 
let secondElement = answer.1 

विधि 3

नाम का प्रयोग करें। यह केवल तभी काम करता है, अगर तत्वों को टुपल घोषणा में नामित किया गया था।

let firstElement = answer.number 
let secondElement = answer.good 
+2

स्विफ्ट में चर मैं कहना है कि विधि 1 वास्तव में मेरी आँखों – BigOmega

1

मैंने कोशिश की। यह इतना अच्छा नहीं है लेकिन काम करता है ...

protocol SubscriptTuple { 
    associatedtype Tuple 
    associatedtype Return 
    var value: Tuple { get set } 
    subscript(sub: String) -> Return? { get } 
} 

struct TupleContainer: SubscriptTuple { 
    typealias Tuple = (number: Int, good: Bool) 
    typealias Return = Any 
    var value: Tuple 
    subscript(sub: String) -> Return? { 
     switch sub { 
     case "number": 
      return value.number 
     case "good": 
      return value.good 
     default: 
      return nil 
     } 
    } 
} 

और इसका उपयोग कैसे किया जाए।

let answer = Answer(value: (120, false)) 
answer["number"] 
+0

दर्द होता है मैं स्विफ्ट 2.2 का उपयोग कर रहा है की घोषणा करने के तरीके के बारे के बाद। – Lumialxk

संबंधित मुद्दे