cost 339 ms
如何通過對代碼庫的最小更改來豐富案例類?

[英]How do I enrich a case class with minimal changes to the codebase?

使用 Scala 2.11.12。 分散在我的代碼庫中,我有一個這樣的案例類: (使用自定義案例類Sight )和相應的伴隨對象: 事實證明,擁有相似的類型會很有用,所以我創建了一個通用案例類: 帶有相應的伴隨對象: 顯然isIdyllic和pickByBeautifulSout ...

Scala:值類X被添加到其方法的返回類型中作為X#

[英]Scala: value class X is added to the return type of its methods as X#

我想豐富一個'scala圖'圖。 為此,我創建了一個隱式值類: 問題在於其方法的返回類型,例如: 原因在於'Graph'具有依賴的子類型,例如NodeT嗎? 有沒有辦法使這種濃縮工作? ...

如何豐富包對象?

[英]How do I enrich a package object?

我最近發現可以使用 Pimp Enrich My Library模式使用.type向伴隨對象添加方法: 不幸的是,這似乎不適用於像scala.math這樣的包對象: 我得到以下編譯器錯誤: 是否可以豐富包對象? ...

如何實現FlatMap for Option

[英]How to implement flatMap for Option

我正在嘗試將map和flatMap作為Option的擴展/擴展來實現,而不作弊並查看它在Scalaz中是如何實現的。 所以這是我到目前為止被困住之前得到的: 我真正需要的只是基本功能,因此我可以執行以下操作: 有什么提示嗎? ...

類型不匹配;發現:Int(1)要求:B

[英]Type mismatch; found : Int(1) required: B

我正在嘗試擴展List類,以便為比較大小提供一些更簡化的方法,但是我遇到了標題中的錯誤... 這是我的代碼: 這個想法是因為它只是比較了列表的大小,它們的類型可能不同而且無關緊要,但是當我嘗試這樣做時: 我得到了前面提到的錯誤。 如果我刪除B和設置that為類型List[ ...

Scala的另一個CanBuildFrom問題:集合豐富運算符,它包裝了另一個不同類型的

[英]Another Scala CanBuildFrom issue: a collection enrichment operator that wraps another of a different type

用戶RégisJean-Gilles很好地回答了我先前的問題,當時我在CanBuildFrom和擴充功能(又稱“ pimp my library”或“ enrich my library”)方面苦苦掙扎: 創建一個隱式函數,用正確的類型將map()包裝在Scala中:不適合膽小的人 ...

如何向庫對象添加新方法?

[英]How can I add new methods to a library object?

我從一個庫(特別是com.twitter.finagle.mdns.MDNSResolver )獲得了一個類。 我想擴展類(我希望它返回Future [Set],而不是Try [Group])。 當然,我知道我可以對它進行子類化並在那里添加我的方法。 但是,我正在嘗試學習Scala,這 ...

豐富內心階級

[英]Enrich an inner class

我想實現內部類的enrich-my-library模式,它將適用於外部類的任何實例。 像這樣的東西: class Outer { class Inner(val x: Option[Inner] = None) { def test(y: Inner) {} } } imp ...

如何將基於交叉產品的方法添加到scala集合?

[英]How can I add cross product based methods to scala collections?

希望這將是一個關於圖書館拉皮條的簡單問題(因為關於該主題的其他問題往往會產生超出我目前技能水平的答案)。 我想要做的就是將集合的交叉產品映射到自身。 所以我試圖讓皮條客Traversable : 但它不起作用(它沒有進行隱式轉換),我不明白為什么不(我對scala很新)。 ...

如何隱式擴展功能而不丟失類型推斷

[英]How to implicitly extend a Function without losing type inference

對於DSL,我需要隱式擴展功能值。 例如: 使用PimpedFunction的函數可以定義為: 問題是在調用的代碼takes 。 預期的工作如下: 但是,如果我忽略了參數類型,編譯將無法推斷出它: 我可以更改任何內容以幫助進行scalac推理嗎? OBS ...

Enrich-My-Library適用於所有Traversables

[英]Enrich-My-Library For all Traversables

我試圖弄清楚如何編寫一個適用於任何Traversable[_]的函數交換函數,給定一個集合和交換索引。 我想出了以下內容: 我想知道如何將它變成Traversable的隱式擴展,使我能夠用List(1,2,3,4,5).swap(0, 4)調用它。 我能得到的最接近的是: 不 ...

當其中一個類型參數應該是Nothing時,為什么Scala的隱式類不起作用?

[英]Why doesn't Scala's implicit class work when one of the type parameters should be Nothing?

更新:我修改了示例,以便可以編譯和測試。 我有一個定義濃縮方法的隱式類: 問題是當第二個例子中R為Nothing時它不起作用。 它導致編譯器錯誤:在這種情況下,我得到以下編譯器錯誤: 為什么會這樣? 我設法通過為該案例創建一個單獨的隱式類來解決它: ...

豐富我的圖書館優化

[英]Enrich-My-Library optimization

免責聲明:我從C#來到Scala,在這里我非常感謝LINQ。 因此,我立即對迭代器和序列感到賓至如歸。 我錯過了收益率很高的“ C#風格”,但是我可以繼續做自己的事情……即使它付出了性能損失。 現在,當我錯過了一些C#中的集合方法時,我只是將其定義為擴展方法,並且編譯器在有效地處理代碼 ...

如何在沒有開銷的情況下豐富價值類?

[英]How do you enrich value classes without overhead?

Scala 2.10引入了值類,您可以通過使類擴展AnyVal指定AnyVal 。 值類有許多限制,但它們的一個巨大優點是它們允許擴展方法而沒有創建新類的懲罰:除非需要裝箱,例如將值類放在數組中,它只是舊類加上一組將類作為第一個參數的方法。 從而, 解開比自己編寫i + j*j更貴的 ...

有沒有辦法“豐富”Scala類而不將代碼包裝到另一個對象中?

[英]Is there a way to “enrich” a Scala class without wrapping the code into another object?

在Scala 2.9中為庫類添加自定義方法(豐富或“皮條客”)我不得不寫這樣的東西: 隨着Scala 2.10的發布,我讀到它引入了隱式類定義,從理論上講,它是通過在返回匿名類對象的隱式方法中消除需要來簡化上述任務。 我以為這會讓我寫出來 這對我來說看起來更漂亮。 但是,這樣 ...

可選 Java 吸氣劑

[英]Option-izing Java getters

從 Scala 使用 Java 時,我們必須考慮 null。 例如,HttpServletRequest getter(getAttribute、getHeader 等)都可能返回 null。 我知道我可以在每次調用 HttpServletRequest 方法時手動執行 case/match 或 m ...

Scala,擴展了迭代器

[英]Scala, extending the iterator

我希望擴展迭代器以創建一個新方法takeWhileInclusive ,它將像takeWhile一樣takeWhile但包含最后一個元素。 我的問題是擴展迭代器以返回一個我希望延遲評估的新迭代器的最佳實踐。 來自C#背景我正常使用IEnumerable並使用yield關鍵字,但這樣的選項 ...

使用enrich-my-library鍵入匿名函數的推斷

[英]Type inference on anonymous functions with enrich-my-library

假設我有一個方法將(兩個元素上的函數)轉換為(兩個序列上的函數): 換句話說,結果函數采用兩個序列xs和ys ,並創建一個由(xs(0) f ys(0), xs(1) f ys(1), ...)組成的新序列。例如,如果xss是Seq(Seq(1,2),Seq(3,4))並且f是(a: I ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM