Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F#区分大小写吗?_F#_Case Insensitive_Case Sensitive - Fatal编程技术网

F#区分大小写吗?

F#区分大小写吗?,f#,case-insensitive,case-sensitive,F#,Case Insensitive,Case Sensitive,我在这里和网上搜索了一下,但没有找到答案 我问的原因是,因为F#约定似乎更喜欢非大写字母,所以在F#中使用带Pascal约定的BCL类型看起来很奇怪,如: 看起来更符合F的精神,比如: let stringD = string.join(" ",[| stringA; stringB |]) 令人惊讶的是,没有明确提到区分大小写,但提到对内部语言/语言和用户定义的类型参数使用不同的大小写(5.1.2) 虽然我对F#的经验有限(除了Hello World风格的应用程序之外),但我认为string

我在这里和网上搜索了一下,但没有找到答案

我问的原因是,因为F#约定似乎更喜欢非大写字母,所以在F#中使用带Pascal约定的BCL类型看起来很奇怪,如:

看起来更符合F的精神,比如:

let stringD = string.join(" ",[| stringA; stringB |])
令人惊讶的是,没有明确提到区分大小写,但提到对内部语言/语言和用户定义的类型参数使用不同的大小写(5.1.2)

虽然我对F#的经验有限(除了Hello World风格的应用程序之外),但我认为
string.join
不绑定到
string.join
是的,F#区分大小写

let stringD = string.join(" ",[| stringA; stringB |])
不行。

好的,有几件事

首先,F#区分大小写

第二,命名的F#约定在。简单地说,让F#模块中的绑定成员使用camelCase,但所有.NETOO构造都使用PascalCase。整个F#图书馆都是如此


最后,在F#
中,string
不是关键字,而是a的名称(对于
System.string
)和a的名称(转换为字符串)。在
string.Join
的表达式上下文中,函数名优先,这就是
string.Join
不起作用的原因。由于区分大小写,
System.String.join
永远不会工作(除非您添加了扩展成员)。

好的,我可以理解在字符串中找不到join,但在C中,字符串或字符串可以访问其成员。为什么这在F#中不起作用?这是C#的封面背后的IDE魔术吗?在C#中,“string”是一个表示“System.string”的关键字。在F#中,“string”是函数名和类型别名,而不是关键字。谢谢你的回答。如果你不介意的话,我会问你很多F#问题:O
let stringD = string.join(" ",[| stringA; stringB |])