F# 3.0 değişiklikleri kesiliyor
Bu konu Visual Studio 2012 yayını için F# derleyicisinin ve dilinin 3.30 sürümü içindeki bozucu değişiklikleri açıklar.
Bozucu Değişiklikler Listesi
Aşağıdaki tablo F# 3.0 içindeki bozucu değişiklikleri listeler.
Bozucu değişiklik alanı |
Tanımlama |
---|---|
Girinti |
F# derleyicisinin önceki sürümlerinde hatalı olarak kabul edilen bazı yanlış girintiler geçerli sürümde derleme hatası üretir. Girinti kurallarının tam bir açıklaması için, bkz: Kod biçimlendirme yönergeleri (F#). |
Yerel değişken olan yapıların alıntıları, yöntemleri ve özellikleri |
Yerel bir değişken olan bir yapının bir özelliğini ya da yöntemini bir alıntı içinde çağırmak artık bir hatadır. F#'in önceki sürümleri bu davranışa izin verir.
Bu gereksinimin etrafından dolaşmak için, yerel değişkenin bir kopyasını oluşturun, aşağıdaki örneğin gösterdiği gibi:
|
Uygunsuz nulller için eşitlik |
Önceki sürümlerde, null değerlerine bir türün uygun ya da uygunsuz değerleri olup olmadıklarına bakmaksızın = işlecini kullanarak karşılaştırabilirsiniz. Bir uygun null türün izin verdiği bir null değeridir; bir uygunsuz null tür için geçerli bir değer değildir. Geçerli davranış uygunsuz nullleri karşılaştırmak için = işlecini kullandığınızda bir NullReferenceException harekete geçirmektir, aşağıdaki kodun gösterdiği gibi.
|
Açıklamalar ve dizeler |
Önceki sürümlerde, üç alıntılı bir dize içinde (""" kullanan bir dize) bir açıklama kapatma belirteci *) bir dizenin bir parçası olarak çözümlenir. Geçerli sürümde, o belirteç bir açıklama kapatma karakteri olarak çözümlenir. Bu nedenle, daha önce kabul edildi, aşağıdaki kod, geçerli sürümde bir hata üretecektir:
Daha fazla bilgi için bkz. Dizeleri (F#). |
Farklı alıcı ve ayarlayıcı türlere sahip özellikler. |
F#'ın önceki sürümlerinde, F# derleyicisi türlerin eşleşmeyen alıcı ve ayarlayıcı yöntemlere sahip olmasına hatalı olarak izin verir (örneğin, int türü bir alıcı ve string türü bir ayarlayıcı). F# 3.0 içinde, derleyici böyle bir bildirimi hata olarak bildirir. |