我试图在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)
}
}
}
}
答案 0 :(得分:0)
当您调用某个函数时,应输入其值
if isLeapYear(year: year) == true {
或
if isLeapYear(year: Int(1)) == true {
答案 1 :(得分:0)
您需要将参数的值添加到函数中,而不是参数的类型。
这里我认为你需要使用nextDay函数的参数。
当您调用具有参数的函数时,您需要为函数参数提供值,因为此值将在函数内使用。值类型应与参数类型相同。在这种情况下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) {
// Your function call
if isLeapYear(year: year) == true {
// Your code
}
// Hardcorded values (year 2, month 2, days 2)
return (2, 2, 2)
}