Tôi đang cố gắng tìm ra cú pháp đúng để sử dụng toán tử đường ống |> vào việc tạo đối tượng. Hiện tại tôi đang sử dụng một thành viên tĩnh để tạo đối tượng và chỉ đường ống đến đó. Đây là phiên bản đơn giản.Sử dụng ký hiệu ống F # với một hàm tạo đối tượng
type Shape =
val points : Vector[]
new (points) =
{ points = points; }
static member create(points) =
Shape(points)
static member concat(shapes : Shape list) =
shapes
|> List.map (fun shape -> shape.points)
|> Array.concat
|> Shape.create
Những gì tôi muốn làm ...
static member concat(shapes : Shape list) =
shapes
|> List.map (fun shape -> shape.points)
|> Array.concat
|> (new Shape)
là một cái gì đó như thể này? Tôi không muốn lặp lại mã bằng cách lặp lại hàm tạo của tôi với thành viên tạo tĩnh.
Cập nhật Constructors là chức năng hạng nhất như F # 4.0
Trong F # 4,0 cú pháp đúng là.
static member concat(shapes : Shape list) =
shapes
|> List.map (fun shape -> shape.points)
|> Array.concat
|> Shape
Uhg, thật đơn giản. Tôi đã thử rất nhiều cú pháp khác nhau và thậm chí không nghĩ đến việc sử dụng một niềm vui. Cảm ơn ngài. – gradbot