4
:F # : 두 개의 역으로 된 값 이름이 함수 이름과 충돌합니까? 비주얼 스튜디오 2015
let myFunction (``string`` : string) =
"\"Quoted string\"" |> (Regex "\"[^\"]*\"").Match |> string
let myOtherFunction (str : string) =
"\"Quoted string\"" |> (Regex "\"[^\"]*\"").Match |> string
첫 번째 함수는 컴파일러 에러를 발생은 string
함수 빨간색 밑줄된다. ("이 표현식은 일치 유형 -> 'a가 있어야하지만 여기에는 유형 문자열이 있습니다.)
두 번째 기능은 문제가 없지만 아무 문제가 없습니다. 이것은 의도적으로 설계된 것입니까?
사실, 이중 백틱이 전혀 필요하지 않습니다. 'let upper (string : string) = string.ToUpper()'라고 쓰면 효과가 있었을 것입니다 :'upper "foo"'결과 "FOO"를 생성합니다. double-backticks가 ** 필요한 ** 유일한 시간은'type'과 같은 키워드 이름으로 매개 변수의 이름을 지정하거나 이름에 공백이나 기타 일반적으로 불법적 인 구두점을 포함하려는 경우입니다. – rmunn