没有“ Range '类型的表达模式不能与'Int'类型的值匹配”,函数将无法工作”] >> 这是我尝试过的方法,无法弄清错误的出处。缺少什么吗?语法错误?我尝试在函数中使用if-else进行类似操作,但也出现错误。 var steps = 0 func incrementSteps() -> Int { steps += 1 print(steps) return steps } incrementSteps() let goal = 10000 func progressUpdate() -> Int { let updated = progressUpdate()/goal switch updated { case (0.0..<0.1): print("Great start") case (0.11..<0.5): print("Almost halfway") case (0.51..<0.9): print("Almost complete") default: print("Beat goal") } } progressUpdate() 这是我尝试过的方法,无法弄清错误的出处。缺少什么吗?语法错误?我尝试在函数中使用if-else进行类似操作,并且也遇到错误。 var ... 您需要将updated指定为Double。并在返回时将其转换回Int(如果需要,请输入Int)。 注意:另外,您需要修改在progressUpdate定义内调用progressUpdate函数的操作,这会导致递归。如果要这样做,则可能需要为break循环赋予条件。 func progressUpdate() -> Int { let updated = Double(steps/goal) switch updated { case (0.0..<0.1): print("Great start") case (0.11..<0.5): print("Almost halfway") case (0.51..<0.9): print("Almost complete") default: print("Beat goal") } return Int(updated) }

问题描述 投票:0回答:1

这是我尝试过的方法,无法弄清错误的出处。缺少什么吗?语法错误?我尝试在函数中使用if-else进行类似操作,但也出现错误。

var steps = 0

func incrementSteps() -> Int {
    steps += 1
    print(steps)
    return steps
}

incrementSteps()
let goal = 10000
func progressUpdate() -> Int {
    let updated = progressUpdate()/goal
    switch updated {
    case (0.0..<0.1):
        print("Great start")
    case (0.11..<0.5):
        print("Almost halfway")
    case (0.51..<0.9):
        print("Almost complete")
    default:
        print("Beat goal")
    }
}
progressUpdate()
            

这是我尝试过的方法,无法弄清错误的出处。缺少什么吗?语法错误?我尝试在函数中使用if-else进行类似操作,并且也遇到错误。 var ...

swift
1个回答
0
投票

您需要将updated指定为Double。并在返回时将其转换回Int(如果需要,请输入Int)。

注意:另外,您需要修改在progressUpdate定义内调用progressUpdate函数的操作,这会导致递归。如果要这样做,则可能需要为break循环赋予条件。

© www.soinside.com 2019 - 2024. All rights reserved.