2010-09-17 25 views
5

Burada ve internette aradım ama cevap yok.F # büyük/küçük harfe duyarlı mı?

onlar noncapital harfleri lehine gibi F # konvansiyonlar Pascal sözleşmeleri ile BCL tipleri olduğu gibi, F # garip bakmak kullanarak, görünüyor beri Bunu sormamın sebebi vardır:

let stringD = String.Join(" ",[| stringA; stringB |]) 

o ruhu içinde daha olacak gibi görünüyor

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

cevap

8

Tamam, birkaç şey.

İlk olarak, F # büyük-küçük harf duyarlıdır. İkinci olarak, adlandırma için F # kuralları F# Component Design Guidelines 'da açıklanmıştır. Kısaca, F # modülleri içindeki üyeler, camelCase'i kullanır, ancak tüm .NET OO yapıları PascalCase kullanır. Bu F # kitaplığı boyunca geçerlidir.

Son olarak, F # string ziyade bir type abbreviation (System.String için) adı ve function ismi (yani bir dizeye dönüştürür) hem bir anahtar kelime değildir. string.Join ifadesinin bağlamında, işlev adı önceliklidir, bu nedenle string.Join çalışmaz. Büyük/küçük harfe duyarlılık nedeniyle, System.String.join asla çalışmaz (örneğin, bir uzantı üyesi eklediyseniz).

+0

Şaşırtıcı cevap ver. Eğer sakıncası yoksa burada bir sürü F # sorusu olacak gibi gözüküyor: O –

+0

Lanet F # öğrenecekti ama bunun nedeni ile ... – beppe9000

1

Şaşırtıcı the F# Language Specification açıkça harf duyarlılığı söz etmez, ancak (5.1.2)

intrinsics/dil ve kullanıcı tanımlı tür parametreler için farklı buatta refere eder: böyle F #

F # ile olan deneyimlerim sınırlı olsa da (Hello World tarzı uygulamaların ötesinde) string.join'un String.Join'a bağlanmadığını varsayalım.

+0

Ok Dize'de bulunamayan Katılmayı anlayabilirim, ancak C# dizesinde veya Dize, üyelerine erişmek için çalışır. Neden bu F # içinde çalışmıyor? Bu C# için kapakların arkasında bazı IDE sihir mi? –

+3

C# 'dizesi', 'System.String' anlamına gelen bir anahtar sözcüktür. F # 'string', bir fonksiyonun yanı sıra bir tür takma ismidir ve bir anahtar kelime değildir. – Brian

2

Evet, F # harf duyarlı

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

Çalışmaz

olduğunu.

İlgili konular