F# 为什么在这个let-bound函数中不需要向上投射?
据 向方法传递参数时,将自动应用向上转换 在对象类型上。但是,对于模块中的let绑定函数, 除非参数类型声明为 灵活型 但是 我根本不需要向上投射。看一下上面写着: 这意味着,如果F#函数的推断类型在参数位置包含未密封类型,则在调用时可以传递子类型,而不需要显式的向上转换。例如: (示例中显示的与您的几乎相同) 还请注意,对于let绑定函数,除非在某些情况下,例如在组合参数时,如果函数为:F# 为什么在这个let-bound函数中不需要向上投射?,f#,F#,据 向方法传递参数时,将自动应用向上转换 在对象类型上。但是,对于模块中的let绑定函数, 除非参数类型声明为 灵活型 但是 我根本不需要向上投射。看一下上面写着: 这意味着,如果F#函数的推断类型在参数位置包含未密封类型,则在调用时可以传递子类型,而不需要显式的向上转换。例如: (示例中显示的与您的几乎相同) 还请注意,对于let绑定函数,除非在某些情况下,例如在组合参数时,如果函数为: let myfun (x: C option)= () “向上投射”不再是自动的。请查看其中的内
let myfun (x: C option)=
()
“向上投射”不再是自动的。请查看其中的内容:
这意味着,如果F#函数的推断类型在参数位置包含未密封类型,则在调用时可以传递子类型,而不需要显式的向上转换。例如:
(示例中显示的与您的几乎相同)
还请注意,对于let绑定函数,除非在某些情况下,例如在组合参数时,如果函数为:
let myfun (x: C option)=
()
向上投射不再是自动的