【问题标题】:How to convert Any type data into Double如何将 Any 类型的数据转换为 Double
【发布时间】:2020-09-12 04:51:25
【问题描述】:

这是我作业的最后一部分,我已经尝试了所有我能想到的方法,但仍然没有完成。

字典还没有教,所以我想我只是不知道语法,但我确实想出了解决它的方法,那么我想,我没有作弊。

从第一个循环开始,我可以访问所有 gpa 数据。但是,在第二个循环中,它说二元运算符“>”不能应用于“任何”操作数 因此,如果有任何语法可以将 Any 类型的数据转换为 Double,我认为我的问题已经解决了。

var students : [[String:Any]] =
[[ "firstName": "John", "lastName": "Wilson", "gpa": 2.4 ], [
"firstName": "Nancy", "lastName": "Smith", "gpa": 3.5 ], [
"firstName": "Michael", "lastName": "Liu", "gpa": 3.1 ]]

var currentHighest : Any = 0.0

for person in students{

    print(person["gpa"]!)
}

for person in students{

    var  grade:Any = person["gpa"]!

   if(grade > currentHighest){
       currentHighest = grade
   }
}

print(currentHighest)

【问题讨论】:

    标签: xcode swift5


    【解决方案1】:

    currentHighest不是Any,是Double所以声明为Double,去掉注解

    var currentHighest = 0.0
    

    并在循环中将值转换为Double

    for person in students {
    
       let grade = person["gpa"] as! Double
    
       if grade > currentHighest {
           currentHighest = grade
       }
    }
    

    自定义结构仍然更有效

    struct Person {
        let firstName, lastName : String
        let gpa : Double
    }
    
    let students = [Person(firstName: "John", lastName: "Wilson", gpa: 2.4),
                    Person(firstName: "Nancy", lastName: "Smith", gpa: 3.5),
                    Person(firstName: "Michael", lastName: "Liu", gpa: 3.1)]
    
    let currentHighest = students.map{$0.gpa}.max()!
    print(currentHighest)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-09
      • 2022-01-15
      • 1970-01-01
      相关资源
      最近更新 更多