无法将类型为"Int.Type"的值转换为预期的参数类型"Int"

  • 本文关键字:Int 类型 参数 转换 Type swift
  • 更新时间 :
  • 英文 :


我正在尝试在if语句中调用函数,但我总是收到错误消息"无法将类型'Int.Type'的值转换为预期的参数类型'Int'"。我做错了什么?

func isLeapYear(year: Int) -> Bool {
    if year % 4 != 0{
        return false
    }
    else if year % 100 != 0{
        return true
    }
    else if year % 400 != 0{
        return false
    }
    else{
        return true
    }
}
func nextDay(year: Int, month: Int, day: Int) -> (year: Int, month: Int, day: Int) {
    if isLeapYear(year: Int) == true {
        if day < daysOfMonths_leap[month-1] {
            return ( year, month, day + 1 ) 
        }else {
            if month == 12 {
                return (year + 1, 1, 1)
            } else {
               return (year, month + 1, 1)
             }
         }
    }
}

调用函数时,应输入其值

if isLeapYear(year: year) == true {

if isLeapYear(year: Int(1)) == true {
您需要将

参数的值添加到函数中,而不是将参数的类型添加到函数中。

在这里,我认为您需要使用nextDay函数的参数。

当您调用具有参数的函数时,您需要为函数参数提供一个值,因为该值将在函数内部使用。值类型应与参数类型相同。在这种情况下,国际。

试试这个:

func isLeapYear(year: Int) -> Bool {
    if year % 4 != 0{
        return false
    }
    else if year % 100 != 0{
        return true
    }
    else if year % 400 != 0{
        return false
    }
    else{
        return true
    }
}
func nextDay(year: Int, month: Int, day: Int) -> (year: Int, month: Int, day: Int) {
    // Your function call
    if isLeapYear(year: year) == true {
        // Your code
    }
    // Hardcorded values (year 2, month 2, days 2)
        return (2, 2, 2)
    }

最新更新