我是F#的新手,我试图做一个复杂类型的简单模式匹配,但我找不到这样做的方式。查看下面的伪代码来解释我想要做的模式匹配。F#与复杂类型匹配
type Vector= {X:int; Y:int}
let calculateDirection vector =
match vector with
| vector.X=0 && vector.Y>0 -> "N" // pseudo code
| vector.X>0 && vector.Y>0 -> "NE" // pseudo code
| vector.X>0 && vector.Y=0 -> "E" // pseudo code
| vector.X>0 && vector.Y<0 -> "SE" // pseudo code
| vector.X=0 && vector.Y<0 -> "S" // pseudo code
| vector.X<0 && vector.Y<0 -> "SW" // pseudo code
| vector.X<0 && vector.Y=0 -> "W" // pseudo code
| vector.X<0 && vector.Y>0 -> "NW" // pseudo code
| _ -> "Error"
我读了一些教程(https://fsharpforfunandprofit.com/posts/match-expression/),但它总是简单的场景,并没有帮助我很多。或者我只是不明白他们。
在此先感谢。
谢谢,我用积极的方式解决方案,因为它是确实好多了可读性。 –