swift通用字典功能

WIS*_*SAM 1 generics dictionary func swift

我正在尝试为字典(任何数据类型)创建一个通用函数.我调用函数时遇到此错误:

错误:无法将类型'[Int:String]'的值转换为预期的参数类型'[_:_]'wprintgeneric(inp:w)^

我的代码如下:

var w=[1:"wisam",2:"khlaid",3:"abd"] //dictionary

func wprintgeneric<T>(inp:[T:T]){

    for (i,j) in inp{print(i,j)}
}

wprintgeneric(inp: w)
Run Code Online (Sandbox Code Playgroud)

Tre*_*vör 7

您收到此错误是因为您没有正确使用泛型,泛型是预先不知道的特定类型的占位符(请注意,它实际上与Any类型不同).

你应该做:

func wprintgeneric<T,U>(inp:[T:U]){

   for (i,j) in inp  {
      print(i,j)
   }
}
Run Code Online (Sandbox Code Playgroud)

  • @TrevörAnneDenise 非常感谢......你真的帮助了我 (2认同)