2016-03-24 8 views
2

GetSlice() yöntemini kullanmaya çalışırken hata alıyorum.F # Deedle GetSlice() hatası "DateTime seçeneğinin olması bekleniyor"

cl.Rows.GetSlice(DateTime(2014,12,28,20,0,0), DateTime(2014,12,28,23,0,0)) 

Hata: Bu ifadenin DateTime türü olması bekleniyordu, ancak burada DateTime türü var. Bu hata (tarihi (2014,12,28,20,0,0), tarihi (2014,12,28,23,0,0)) yukarıdaki kodu

her iki parametre için verilmektedir Birisi 'DateTime seçeneği' türü arasındaki farkı bir 'DateTime' türünü açıklayabilir. Yukarıdaki kod için kullanılacak doğru doğru sözdizimi ne olurdu?

FsLab sürümü (0.3.17)

+1

Bakın: [Seçenekler (F #)] (https://msdn.microsoft.com/en-us/library/dd233245.aspx) ve [Seçenek Türü] (https://fsharpforfunandprofit.com/posts/the -option-type /) –

cevap

1

(derleyici yardımsever söyler gibi) tip DateTime option her iki parametreyi beklediğini GetSlice yöntem, ama sadece DateTime sağlıyoruz.

cl.Rows.GetSlice(Some (DateTime(2014,12,28,20,0,0)), Some (DateTime(2014,12,28,23,0,0))) 
0

Option ya belirli bir tür arasında bir değere kapsüller türüdür ya da herhangi bir değer olduğunu belirtir:

kurucu Some kullanarak, tip 't option bir değer yaratmak. F # içinde, türünü yazmanın iki yolu vardır: Option<'t> veya 't option. o null s ve bazı Exception s (örn KeyNotFoundExcpetion ler) eskimiş kullanarak yapar -

seçeneğini kullanarak arkasındaki ana motivasyon tip kaydetmek ve hata içermeyen kod üretmektir.

+0

F # için çok yeni ve Type Option ile karşılaştım. Ancak 'DateTime seçeneği' gördüğümde bağlantı kuramadım. Deedle ile yaşadığım en büyük sorun, derleyicinin beklediğini söylediği şeyin sözdizimini anlamaktır. Ne yazacağımı tahmin etmeyi bıraktığım sözdizimini anlayabilene kadar. – rhscJohn

+0

Eğer sözdizimini kavrayamazsanız, bu kavramların ilk öğrenilmesinin sırayla olduğunu gösterebilir. Mükemmel kaynak http://fsharpforfunandprofit.com, ve özellikle sizin durumunuz için, [ifadeler ve sözdizimi bu bölüm] (http://fsharpforfunandprofit.com/series/expressions-and-syntax.html) ile başlamanızı öneririz. –

+0

@rhscJohn - Şaşkın olduğunu düşündüm çünkü "seçeneğin" ne anlama geldiğini anlamadı (C# veya Java arkaplanından biri için yeni bir şey olabilir) ve F # nin sistem ve belgelerinin temellerini biliyorsunuzdur. Fyodor ile aynı fikirdeyim - fsharpforfunandprofit.com harika bir öğrenme kaynağı ve ben de tavsiye ediyorum. –

İlgili konular