我有以下代码,如下所示
[a,b,c,d] = ["a","b","c","d"]
编译器报告警告:
Warning: Definition but no type signature for 'a'
Inferred type: a :: [Char]
如何使警告静音并指定此表达式的类型?
答案 0 :(得分:3)
您可以为变量添加显式类型签名:
a, b, c, d :: String
[a,b,c,d] = ["a","b","c","d"]
还应该有一些编译器标志禁用警告,因为通常的做法是不明确指定每个辅助变量的类型。
答案 1 :(得分:2)
GHCi没有错误:
Prelude> let [a,b,c,d] = ["a","b","c","d"]
如果你想给整个片段一个类型,试试,
Prelude> let x :: [String]
x@[a,b,c,d] = ["a","b","c","d"]