Pytania oznaczone «scala»

88
Przerwij wcześnie

Jaki jest najlepszy sposób na wcześniejsze zakończenie spasowania? Jako uproszczony przykład wyobraź sobie, że chcę zsumować liczby w an Iterable, ale jeśli napotkam coś, czego się nie spodziewam (powiedzmy nieparzystą liczbę), mogę chcieć zakończyć. To jest pierwsze przybliżenie def...

88
Konwertować listę Scala na krotkę?

Jak przekonwertować listę zawierającą (powiedzmy) 3 elementy na krotkę o rozmiarze 3? Na przykład, powiedzmy, że mam val x = List(1, 2, 3)i chcę przekonwertować to na (1, 2, 3). Jak mogę to zrobić?

88
Kiedy są przydatne typy wyższego rodzaju?

Od jakiegoś czasu zajmuję się programowaniem w języku F # i podoba mi się to. Jednak jedno słowo, które wiem, że nie istnieje w F #, to typy wyższego rodzaju. Przeczytałem materiały o typach wyższego rzędu i myślę, że rozumiem ich definicję. Po prostu nie jestem pewien, dlaczego są przydatne....

87
Co oznacza param: _ * w Scali?

Będąc nowym w Scali (2.9.1), mam a List[Event]i chciałbym go skopiować do a Queue[Event], ale następująca składnia daje Queue[List[Event]]zamiast tego a: val eventQueue = Queue(events) Z jakiegoś powodu działa: val eventQueue = Queue(events : _*) Ale chciałbym zrozumieć, co to robi i...

86
Scala sprawdza, czy element znajduje się na liście

Muszę sprawdzić, czy na liście znajduje się ciąg, i wywołać funkcję, która odpowiednio akceptuje wartość logiczną. Czy można to osiągnąć za pomocą jednej wkładki? Poniższy kod jest najlepszym, jaki mogłem dostać: val strings = List("a", "b", "c") val myString = "a" strings.find(x=>x ==...

86
Jak czekać na kilka kontraktów futures?

Załóżmy, że mam kilka przyszłości i muszę poczekać, aż którakolwiek z nich zawiedzie lub wszystkie odniosą sukces. Na przykład niech istnieją 3 futures: f1, f2, f3. Jeśli się f1powiedzie i f2zawiedzie, nie czekam na f3(i zwracam błąd klientowi). Jeśli f2zawiedzie podczas f1i f3nadal działają,...

85
Kiedy używać znaku równości w deklaracji metody Scala?

Ze znakiem równości: object HelloWorld { def main(args: Array[String]) = { println("Hello!") } } Bez znaku równości: object HelloWorld { def main(args: Array[String]) { println("Hello!") } } Oba powyższe programy działają w ten sam sposób. W poście na blogu Rzeczy, których nie lubię...

85
Jak dopasować wzorzec wielu wartości w Scali?

Powiedzmy, że chcę obsłużyć wiele wartości zwracanych z usługi zdalnej przy użyciu tego samego kodu. Nie wiem, jak to wyrazić w Scali: code match { case "1" => // Whatever case "2" => // Same whatever case "3" => // Ah, something different } Wiem, że mogę użyć metody wyodrębniania...