我在 Swift
中使用 UITableView
,我有一个函数根据某些条件返回行数,另一个函数返回每个部分的标题。这两个函数具有相同的主体、相同的条件,但第一个函数返回 Int
数据类型,第二个函数返回 String
数据类型。
我能否以某种方式使这个通用函数成为返回某个通用值的函数,但该值对于第一个函数必须是“Int”,对于第二个函数必须是 String
。
下面的代码是返回行数的函数。相同的主体用于返回部分标题的函数。它的返回类型是String
。
func getNumberOfRows(for section: Int) -> Int {
let parameters = SuggestionsTableSectionType.Parameters(recents: recents, suggestions: suggestions, section: section)
if SuggestionsTableSectionType.recentsAndSectionIsZero(parameters).isActive {
return recents.count
} else if SuggestionsTableSectionType.suggestionsAndSectionIsZero(parameters).isActive {
return suggestions.count
} else if SuggestionsTableSectionType.recentsAndSuggestionsAndSectionIsZero(parameters).isActive {
return recents.count
} else if SuggestionsTableSectionType.recentsAndSuggestionsAndSectionIsOne(parameters).isActive {
return suggestions.count
}
return 0
}
感谢您的回答。
最佳答案
你应该像这样返回 tuple
类型:
func getNumberOfRows(for section: Int) -> (Int, String) {}
此外,为了约定您的代码,您可以使用 typealias
关键字来定义您的 tuple
的名称:
typealias NumberOfRowsInfo = (row: Int, someString: String)
func getNumberOfRows(for section: Int) -> NumberOfRowsInfo {}
然后像这样获取数据:
let info = getNumberOfRows(for: section)
print("Row: \(info.row), string: \(info.someString)")
关于ios - Swift 中的函数可以返回不同的数据类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45914506/