2010-09-18 28 views
5

Bazen, F # derlenirken rahatsız edici şablon eşleşmesi ve uyarı girintilerini alıyorum. Uyarıları devre dışı bırakmanın bir yolu var mı? Uyarılar konusunda çok iyi bir OKBim.F # Koru Uyarılar

+0

Belki uyarıları gidermek? :) – ChaosPandion

+1

Desen eşleştirme uyarılarını kapatmaya gerçekten çok dikkat ederim. Ve F # sözdiziminin kapsamı belirlemek için girintiyi kullanabileceğini düşünürken, bu uyarıları göz ardı etmeyeceğim - onları anlamaya çalışacağım. –

+2

Her örnek için bunu yapmanın bir yolu var mı? Birkaç kez derleyicinin yapamadığı şeyleri bildiğim vakalarım var, örneğin, bir regex eşleşmesinin üreteceği grup sayısı. – gatoatigrado

cevap

7

görmek ve için uyarısını nesnesi

Bu ve diğer özyinelemeli referanslar olsun , gecikmeli referansı kullanılarak çalışma zamanında başlatılması için kontrol edilecektir. Bunun nedeni, 'un yinelemeli işlevleri yerine bir veya daha fazla özyineleli nesnesi tanımlamanızdır. Bu uyarı '#nowarn' 40 "'veya ' --nowarn: 40 'kullanılarak bastırılmış olabilir.

komut satırında derleyici bayrağı --nowarn birini kullanın veya kodunuzu karma-yönergesi #nowarn kullanabilirsiniz göstermektedir. Her bir uyarı için uyarı numarası, yapım çıktısının bir parçası olacaktır (Visual Studio hata listesi sayıları göstermez, bu nedenle VS durumunda, yapıyı oluşturup inceleyin). Ayrıca, eğer VS'nin içinde ise, "Build" sekmesi, proje özellikleri sayfasına gidebilir ve "uyarı seviyesi" seçicisini kullanabilir ve "uyarıları bastırabilir" alanını (noktalı virgülle sınırlandırılmış bir sayı listesi) kullanarak hangi uyarıların diplestildiğini kontrol edebilirsiniz. VS UI.

(BTW, --nowarn bütün proje biçimde hazırlandığına kapanır oysa #nowarn sadece mevcut dosyada uyarıyı kapatır inanıyoruz.)

+0

İyi Cevap Brian –

2

Bkz: Compiler Options (F#)

--nowarn:<int-list>: sayısına göre listelenmiş

Devre Dışı belirli uyarılar. Her bir uyarı numarası 'u virgülle ayırın. uyarı numarasını, derleme çıktısında uyarıları için keşfedebilirsiniz.

Bu derleyici seçeneği, aynı adının C# derleyicisi seçeneğine eşdeğerdir. (Lar) Daha fazla bilgi için,

let rec x = lazy(x.Value) 

yazabilir unutur durumda /nowarn (C# Compiler Options).