首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分子量计算器中的枚举

分子量计算器中的枚举
EN

Stack Overflow用户
提问于 2015-05-20 08:11:18
回答 1查看 74关注 0票数 1

我正在尝试制作一个分子量计算器作为化学应用程序的一部分。我想让用户在文本字段中输入文本,单击按钮,然后在单独的标签中显示结果。由于分子式是数字和字母的混合,我对如何做到这一点感到困惑。

为了组织元素,我考虑将它们放到一个枚举中:

代码语言:javascript
复制
enum elements: Double {

 case Na = 22.99

 case O = 16.01

 case H = 1.00

}

var array: [(Int, String)] = [(number, element)]()

然而,“数字”中的许多元素都在化合物中。例如,H2O将为var array = [(2, H), (1, O)]

然后,我想我应该将文本字段中的任何元素附加到数组中。例如,如果它是氢氧化钠,NaOH,数组将为:var array = [(1, Na), (1, 0), (1, H)]

然后,我将执行for循环来计算总值,并将其相加,然后将该值打印到标签中。

我遇到麻烦的部分是如何根据文本字段中的内容将项附加到数组中。有什么想法吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-05-20 08:54:04

您可以使用字符串作为枚举的原始值,但不能将分子量存储在枚举中:

代码语言:javascript
复制
enum elements: String {
  case Na = "Na"
  case H = "H"
  case O = "O"
}

let sodium = elements(rawValue: "Na")

println(sodium!.rawValue) // => "Na"

因此,现在您可以在字符串和具体枚举之间进行转换。你可以用它来制作一个字典,将枚举与分子量联系起来:

代码语言:javascript
复制
let molecularWeights:[elements: Double] = [
  .Na: 22.99,
  .O: 16.01,
  .H: 1.00
]

println(molecularWeights[.Na]!) // => "22.99"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30338179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档