bu operatörü kullanarak, dokümanlardan bir belirsiz örnektir: http://package.elm-lang.org/packages/elm-lang/core/3.0.0/Json-Decode#atTam olarak nedir: = operatör Elm'de ne yapıyor?
Böyle olanlar yerleşik herhangi olarak ameliyat ediyoruz sözlük için bir anahtar alır ve bir dekoderi, orada bulunanlarla ilgili çözmeye çalışırcevap
o (:=)0.18.0
telkin operatörleri
Elm isebaşlayarak Json.Decode kaldırılır değil Lütfen, özel infix operators tanımlayabilirsiniz, onların varlığını amacı kod daha okunabilir sürümünü sunmaya yöneliktir. İronik olarak, kavramla aşina olmadığınız zaman, bunun tersi olur.
(:=), Json.Decode paketi tarafından sağlanan özel bir infix operatördür.
özel infix operatörün şu örneği düşünün:import Html exposing (text)
(<|>) : String -> String -> String
(<|>) beginning end =
beginning ++ "Bar" ++ end
main =
text ("Foo" <|> "Buz") -- "FooBarBuz"
Oldukça özel infix operatörlerin kullanımını önlemek için tavsiye edilir.
(:=) operatörüne geri dönelim.
biz mevcut Decoder Primitives listesinden, bir String ve Decoder geçmek zorunda olduğu anlamına gelir ve buna eşlenmiş bir dize anahtarla, yeni bir dekoder yeniden çalıştırır (:=) : String -> Decoder a -> Decoder a
, benziyor tip tanımı.
JavaScript dünyasında
yerel kod, kod çözücüler tür denetlemesi yapmak geri arama fonksiyonları bulunmaktadır.
Örneğin, burada İlkel bir Dekoder Dize geçerli:
function decodeString(value) {
if (typeof value === 'string' || value instanceof String) {
return value;
}
crash('a String', value);
}
Ve burada bir JavaScript (:=) operatörün eşdeğer:
function decodeField(field, decoder) {
return function(value) {
var subValue = value[field];
if (subValue !== undefined) {
return decoder(subValue);
}
crash("an object with field '" + field + "'", value);
};
}
TL; DR
(:=) bir dize anahtarını eşler Bir geri arama (tam olarak bir geri arama değil, aklınıza gelebilecek en yakın olan), JavaScript nesnesindeki değerin türünü kontrol ettiğinizde Elm değerine çevir.
veya hatta kendi özel olanı.
Temelde tek bir erişim at
.
"name" := string
Bir json dizesinde verilen anahtar için bir kod çözücüyü oluşturur: için
at ["name"] string
eşit mi.
"name" := string
"isim" değeri çıkartır ve
string
kod çözücüye geçirir bir kod çözücü oluşturur.
- 1. DotLess'in "web" özelliği tam olarak ne yapıyor?
- 2. Bu terminal komutu tam olarak ne yapıyor?
- 3. << = operatör javascript’te ne yapıyor?
- 4. Tam olarak ne akka.dispatch.Dispatcher $$ anon $ 1 nedir?
- 5. Tam olarak ne için cacert.pem nedir?
- 6. + + operatör olarak ne yapardı? C#
- 7. Tam olarak ne kullanıyorum?
- 8. Tam olarak tam olarak ne yapar? (...).
- 9. Tam olarak PLINQ nedir?
- 10. JSON tam olarak nedir?
- 11. InputLanguage'in değiştirilmesi ne yapıyor?
- 12. Tam olarak DEFAULT_COMPRESSION nedir?
- 13. java -Dnop ne yapıyor?
- 14. Tam olarak bir ROM nedir?
- 15. ".alert span" tam olarak nedir?
- 16. Bu ne yapıyor?
- 17. Panel.IsItemsHost tam olarak ne yapar?
- 18. Tam olarak document.normalize ne yapar?
- 19. Numpy.exp() tam olarak ne yapar?
- 20. AlarmManager.ELAPSED_REALTIME_WAKEUP tam olarak ne yapar
- 21. CDATA tam olarak nedir ve ne işe yarar?
- 22. Bu javascript satırı ne yapıyor?
- 23. `x [False]` nezdinde ne yapıyor?
- 24. PL/SQL'de "/" ne yapıyor?
- 25. Git ne yapıyor? yap?
- 26. Tam olarak bu hata nedir?
- 27. Tam olarak bir ViewModel nedir?
- 28. İntegral Türleri tam olarak nedir?
- 29. Unary "~" operatörü - Burada tam olarak ne oluyor?
- 30. HTML5 konumlandırmada tam olarak "doğruluk" ne demektir?
Lütfen neyi anlamadığınızı veya nelerin çalışmadığını açıklayınız.Bu soruyu kapatmak için oy veriyorum * Ne sorduğunuzu net değil * – Druzion
Vay, tüm cevaplardan sonra Her şey açık. Herkese çok teşekkürler. Bu operatörün Json.Decode paketi için spesifik olduğunu anlayamadım, çekirdekten kökenini düşündüm. –