swift - 使用返回 double 值的用户输入访问字典

标签 swift dictionary input

我希望用户输入一个字符串来访问字典中的一个键,然后返回它的耦合值。我确信这不是我的代码唯一的错误,但我想看看我的想法是否正确,并希望得到一些额外的指导:

主要的两个问题是编写正确的语法来连接函数调用中的用户输入 getInput() (String) func planetAndTime()该函数正在传递我的字典作为参数。

我的另一个问题是返回函数的 double 值。 ->双`

func getInput() -> String{
      let kb: NSFileHandle = NSFileHandle.fileHandleWithStandardInput()
      let inputData: NSData = kb.availableData
      let strData = NSString(data: inputData, encoding:NSUTF8StringEncoding) as! String
return strData
}

/////////

let nameOfPlanetsAndTime:[String:Double] = ["Mercury":0.00000816,
   "Venus":0.00044, "Mars":0.0000239, "Jupiter":0.00062, "Saturn":0.000204,
   "Uranus":0.000289, "Neptune":0.000459, "Pluto":0.000794, 
   "Center of the Milky Way":25000.000000, "Earth's Cousin":1400.000000]

print("Choose planet")


func planetAndTime(nameOfPlanetsAndTime: [String:Double], userLocation:String) ->Double{
    let userLocation = getInput()
    if (nameOfPlanetsAndTime[userLocation] < 0){
        print("Not a Valid Location, Please Try Again")}
    else{
    nameOfPlanetsAndTime[userLocation]!
        print(nameOfPlanetsAndTime)
   }
}

最佳答案

由于误解了 Swift 语言的工作原理,您的代码存在一些问题,因此我建议您阅读 Swift 官方文档以获取一些关于 Swift 功能的优秀示例。不过,为了让您先行一步,我会选择您的代码的一部分。例如,而不是写“

if (nameOfPlanetsAndTime[userLocation] < 0){
        print("Not a Valid Location, Please Try Again")}

你可以写

guard let planet = nameofPlanetsAndTime[userLocation] {
    print("Not a Valid Location, Please Try Again")
    return nil
}

return planet

并将函数的返回类型更改为可选的 Double。所以方法签名看起来像

func planetAndTime(nameOfPlanetsAndTime: [String:Double], userLocation:String) ->Double?

了解可选值在 Swift“世界”中非常重要,我强烈建议您仔细研究一下如何使用它们。我希望这个小例子对您有所帮助。

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID309

关于swift - 使用返回 double 值的用户输入访问字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33006820/

相关文章:

python - 如何在Python中将字符串添加到字典的Key中?

Jquery:单击时在输入和文本之间切换

arrays - 将多个数组合并为一个,顺序索引

mysql - 从 Vapor 3 中的连接查询中获取所有字段

ios - 使其布局无效时与 UICollectionView 单元格选择相关的问题

c++ - 输入 map 值的标准输入

python - 如何使用多个 contains 变量简化 .str.contains 代码?

ios - 重用 API 管理器类和存储数据以使其可重用的最佳方法是什么

javascript - 如何将 jQuery 监听器添加到 CakePHP 时间输入?

python - Shift + Return 在 python 中插入换行符