Swift,使用字符串名称引用变量 [英] Swift, use string name to reference a variable

查看:403
本文介绍了Swift,使用字符串名称引用变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

计划使用字符串值来引用我要更新的变量.组合来自几个不同用户选择来源的字符串.有很多使用if/case语句的可能性.预先感谢

Plan to use a string value to for referencing which variable I want to update. Combining string from a few different user selected sources. To many possibilities to use if/case statements. Thanks in advance

var d1000: Int = 0
// ...
var d1289: Int = 0
// ...
var d1999: Int = 0

var deviceIDtype: Character = "d" // button press assigns some value, d used for example
var deviceIDsection: String = "12" // button press assigns some value, 12 used for example
var deviceID: String = "89" // button press assigns some value, 89 used for example

var ref:String = ""

func devName(dIDt:Character, dIDs: String, dID: String)  -> String {      
    var combine: String = String(dIDt) + (dIDs) + (dID)
    return (combine) 
}

ref = devName(deviceIDtype, dIDs: deviceIDsection, dID: deviceID) // ref equals d1289 in this example


// d1289 = 1234 // trying to set this using the ref variable value, failed attempts below
/(ref) = 1234 // set d1289 variable to equal "1234"
"/(ref)" = 1234 // set d1289 variable to equal "1234"
get(ref) = 1234 // set d1289 variable to equal "1234"
get.ref = 1234 // set d1289 variable to equal "1234"

推荐答案

如何使用字典[String : Int]?

这将使您实现所需的功能-存储不同键的值.

This will allow you to achieve what you want - storing values for different keys.

例如,代替使用

var d1000 = 0
var d1289 = 0
var d1999 = 0

您可以使用

var dictionary: [String : Int] = [
  "d1000" : 0,
  "d1289" : 0,
  "d1999" : 0
]

要在字典中存储值,只需使用

To store a value in the dictionary, just use

dictionary[key] = value
//for example, setting "d1289" to 1234
dictionary["d1289"] = 1234

要从字典中获取值,请使用

and to get the value from the dictionary, use

let value = dictionary[key]
//for example, getting the value of "d1289"
let value = dictionary["d1289"]

因此,您可以使用类似的内容

So, you could use something like this

//initialize your dictionary
var myDictionary: [String : Int] = [:]

//your key initialization data
var deviceIDtype: Character = "d"
var deviceIDsection: String = "12"
var deviceID: String = "89"
var ref: String = ""

//your code
func devName(/*...*/){/*...*/}
ref = devName(/*...*/)

//set the key ref (fetched from devName) to 1234
myDictionary[ref] = 1234

作为一个旁注,您可以真正清理一些代码

Just as a side note, you could really clean some of your code

func devName(type: Character, section: String, id: String) -> String{      
    return String(type) + section + id
}

//...

let key = devName(deviceIDtype, section: deviceIDsection, id: deviceID)
let value = 1234
myDictionary[key] = value

这篇关于Swift,使用字符串名称引用变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆