Pho*_*bis 3 f# transformation pattern-matching
所以,我之前问过这个问题:
在这个具体的例子中,有人可以帮我比较使用F#over C#(IP地址表达式)吗?
我正在查看已发布的代码,我想知道是否可以编写此代码而不会产生警告:
let [|a;b;c;d|] = s.Split [|'.'|]
IP(parseOrParts a, parseOrParts b, parseOrParts c, parseOrParts d)
Run Code Online (Sandbox Code Playgroud)
是否有可能为匹配_模式做一些事情而忽略?没有添加像Active Patterns这样的东西?我想保持代码尽可能简单...我可以这样做而不会大幅改变这段代码吗?
注意:警告如下
警告不完整模式匹配此表达式.例如,值'[| _; _; _; _; _ |]'可能表示模式未涵盖的情况.
你可以试试
#nowarn "25"
Run Code Online (Sandbox Code Playgroud)
在部分功能之前.
但是当然你正在禁用警告,我认为这会将整个文件关闭.我记得看到一种方法只禁用部分文件的警告,但我现在找不到它.
还有编译器选项--nowarn:25
,但这更糟糕,因为它适用于整个项目.
要做正确的方法,你需要用三个替换你的两行:
match Array.map parseOrParts (s.Split [|'.'|]) with
| [|a;b;c;d|] -> IP(a,b,c,d)
| _ -> failwith "Oh no!" // preferably, your exception of choice goes here.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
995 次 |
最近记录: |