这种模式匹配并非详尽无遗。 Ocaml程序编写

时间:2017-11-16 23:01:41

标签: functional-programming ocaml

有人可以告诉我为什么这段代码# let func [g] a = g a ::[] ;;

输出此警告

  

警告8:此模式匹配并非详尽无遗。   以下是不匹配的值的示例:   []

1 个答案:

答案 0 :(得分:3)

参数let url = NSURL(fileURLWithPath: "/Path/to/file.ext"") var resource : AnyObject? do { try url.getResourceValue(&resource, forKey: URLResourceKey.tagNamesKey) var tags : [String] if resource == nil { tags = [String]() } else { tags = resource as! [String] } print(tags) tags += ["Foo"] try url.setResourceValue(tags, forKey: URLResourceKey.tagNamesKey) } catch let error as NSError { print(error) } 将匹配单个元素列表,并将该元素绑定到[g]g会有效,但如果该函数应用了空列表func [f] a或带有多个元素的列表func [] a,该怎么办? 可以除了引发异常之外还能做什么?那是警告告诉你的。