我正在尝试在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)
}