swami
swami

Reputation: 33

Dynamic Struct creation in Swift - based on user input

I am trying to create dynamic struct in swift based on user input.

struct Diagnosis {

var diagName = String() // Name of the diagnosis
var diagSymptoms = [String]() // Symptoms of the diagnosis in a ranked array to identify prevelancy
var diagSpecialization = [String]() //  the specializations which would mostly encounter this diagnosis
var diagRank = Int() // the overall rank of the diagnosis
var diagSynonoms = [String]() // the other name thru which the same diagnosis is called / referred.

//   func init(diagName: String(),diagSymptoms: [String](),diagSpecialization: [String](),diagSynonoms: [String]())
 init( let pasdiagName: String,let pasdiagSymptoms:Array<String>) {
    self.diagName = pasdiagName
    self.diagSymptoms = pasdiagSymptoms
}
}

var maleria = Diagnosis(pasdiagName: "Maleria",pasdiagSymptoms: ["fever","chill","body pain"])

The above creates the structure maleria - But in future I want to have the input from user and create a structure for that inputted string

var abc = "typhoid"

let valueof(abc) = Diagnosis()

The value of function is something I just put here arbitrarily to make my explanation clear. I know I could do this in python and I am new to swift. Thanks in advance for the help.

Upvotes: 2

Views: 2689

Answers (1)

Luca Angeletti
Luca Angeletti

Reputation: 59536

As @Wain suggested, you should use a Dictionary.

This is how you create a mutable dictionary where the key is a String and the value can be any type.

var dict = [String:Any]()

This is how you put key/value pairs into the dictionary

dict["year"] = 2016
dict["word"] = "hello"
dict["words"] = ["hello", "world"]

And this is how you extract a value and use it

if let word = dict["word"] as? String {
    print(word) // prints "hello"
}

Upvotes: 2

Related Questions