今天看學習scala上下界,發現在理解下界 [>:] 這個有一點點問題,記錄一下。
object
lowerbound
extends
val first = new ebook("hello")
val second = new pbook("***** book")
val p1: pair1[book] = new pair1(first, second)
println(p1)
//scala> val p1 = new pair1(first,second)
//p1: pair1[book] = name--hello---name--***** book
//ebook,pbook,最終得到的類是pair1[book]
val newfirst = new book("generic pbook")
val p2 = p1.replacefirst(newfirst)
//p2: pair1[book] = name--generic pbook---name--***** book
println(p2)
/* 下面可以編譯通過,p1:pair1[book], p1.replacefirst(),可知t為book,r>:t,由此可知r至少為book型別,
而傳入引數為weirdbook,所以共同基類就是book,推測r為book型別,replacefirst[book>:book](weirdfirst:book)
scala> val list = list(1, 2, 3)
list: list[int] = list(1, 2, 3)
scala> val newlist = "hello" :: list
newlist: list[any] = list(hello, 1, 2, 3)*/
val weirdfirst: weirdbook = new weirdbook("weird pbook")
val p3 = p1.replacefirst(weirdfirst)
println(p3)
val p4: pair1[pbook] = new pair1(second,second)
val p6: pair1[pbook] =p4.replacefirst(weirdfirst)
}
點此進入
Scala泛型上下界
需求 我們在定義方法 類的泛型時,限定必須從哪個類繼承 或者必須是哪個類的父類。此時,就需要使用到上下界。使用 型別名表示給型別新增乙個上界,表示泛型引數必須要從該類 或本身 繼承 語法格式 t 型別 示例說明 參考 class person class student extends person...
有上下界網路流問題
此類問題可以分為三小類問題 一 無源匯有上下界最大流 二 有源匯有上下界最大流 三 有源匯有上下界最小流 1 無源匯有上下界最大流 題目大意 給n個點,及m根pipe,每根pipe用來流躺液體的,單向的,每時每刻每根pipe流進來的物質要等於流出去的物質,要使得m條pipe組成乙個迴圈體,裡面流躺物...
有上下界的網路流問題
前幾天就想寫了的,一直沒寫,今天就寫完吧。因為在做這些上下界的題的時候,遇到了很多問題,在大神的幫助下還是一一解決了的。英文沒學好誒喂,在sgu和poj各種wa。主要是沒看題,求上下界已經理解了的。做法 將圖的下界分離到乙個附加源和匯中,而上界則變為原弧的上界減去下界的差,構成乙個附加網路,再在附加...