Niezmienny typ, który może zawierać wartość lub odwołanie. Każda instancja tego typu albo zawiera niezerową wartość lub odwołanie, albo nic nie zawiera (w takim przypadku mówimy, że odwołanie jest „nieobecne”; nigdy nie mówi się, że „zawiera wartość null”).
Przewodnik po języku programowania Swift zawiera następujący przykład: class Person { let name: String init(name: String) { self.name = name } var apartment: Apartment? deinit { println("\(name) is being deinitialized") } } class Apartment { let number: Int init(number: Int) { self.number = number } var tenant: Person? deinit { …
Dlaczego miałbyś stworzyć „niejawnie nieopakowaną opcję” zamiast tworzyć zwykłą zmienną lub stałą? Jeśli wiesz, że można go pomyślnie rozpakować, to po co w ogóle tworzyć opcjonalne? Na przykład dlaczego: let someString: String! = "this is the string" będą bardziej przydatne niż: let someString: String = "this is the string" Jeśli …
Przeczytałem na wielu stronach internetowych Opcjonalne powinny być używane tylko jako typ zwracany, a nie używane w argumentach metod. Próbuję znaleźć logiczny powód. Na przykład mam logikę, która ma 2 opcjonalne parametry. Dlatego myślę, że sensowne byłoby napisanie mojej sygnatury metody w ten sposób (rozwiązanie 1): public int calculateSomething(Optional<String> p1, …
Optional Typ wprowadzony w Javie 8 to nowość dla wielu programistów. Czy metoda zwracająca metodę gettera Optional<Foo>zamiast klasyki Foojest dobrą praktyką? Załóżmy, że wartość może być null.
W Javie 8 chcę zrobić coś z Optionalobiektem, jeśli jest obecny, i zrobić coś innego, jeśli go nie ma. if (opt.isPresent()) { System.out.println("found"); } else { System.out.println("Not found"); } Nie jest to jednak „funkcjonalny styl”. Optionalma ifPresent()metodę, ale nie mogę połączyć orElse()metody. Dlatego nie mogę napisać: opt.ifPresent( x -> System.out.println("found …
Korzystam z Java 8 już od ponad 6 miesięcy, jestem całkiem zadowolony z nowych zmian API. Jednym z obszarów, w którym wciąż nie jestem pewny, jest czas użycia Optional. Wydaje mi się, że waham się między chęcią używania go wszędzie, gdzie coś może być null, i nigdzie. Wydaje się, że …
Z dokumentacji Apple : Możesz używać ifi letrazem do pracy z wartościami, których może brakować. Wartości te są przedstawiane jako opcje. Opcjonalna wartość zawiera wartość lub zawiera, nilaby wskazać brak wartości. Napisz znak zapytania (? ) po typie wartości, aby oznaczyć wartość jako opcjonalną. Dlaczego chcesz użyć wartości opcjonalnej?
Podczas korzystania z Optionalklasy Java 8 istnieją dwa sposoby zawijania wartości w opcjonalne. String foobar = <value or null>; Optional.of(foobar); // May throw NullPointerException Optional.ofNullable(foobar); // Safe from NullPointerException Rozumiem, że Optional.ofNullableto jedyny bezpieczny sposób korzystania Optional, ale dlaczego w ogóle Optional.ofistnieje? Dlaczego po prostu nie korzystać Optional.ofNullable i być …
Próbuję zrozumieć różnicę między metodami Optional<T>.orElse()a Optional<T>.orElseGet(). Opis orElse()metody to „Zwróć wartość, jeśli jest obecna, w przeciwnym razie zwróć inną”. Chociaż opis orElseGet()metody brzmi „Zwróć wartość, jeśli jest obecna, w przeciwnym razie wywołaj inną i zwróć wynik tego wywołania”. orElseGet()Metoda zajmuje interfejs funkcjonalny dostawca, który zasadniczo nie bierze żadnych parametrów …
Rozpakowuję dwie wartości ze słownika i przed ich użyciem muszę je rzutować i przetestować pod kątem odpowiedniego typu. Oto, co wymyśliłem: var latitude : AnyObject! = imageDictionary["latitude"] var longitude : AnyObject! = imageDictionary["longitude"] if let latitudeDouble = latitude as? Double { if let longitudeDouble = longitude as? Double { // …
Idiom do radzenia sobie z opcjami w Swift wydaje się nadmiernie rozwlekły, jeśli wszystko, co chcesz zrobić, to podać wartość domyślną w przypadku, gdy jest zerowa: if let value = optionalValue { // do something with 'value' } else { // do the same thing with your default value } …
Czy istnieje sposób sprawdzenia ciągów znaków dla języka Swift nili ""w nim? W Railsach mogę blank()sprawdzić. Obecnie to mam, ale wydaje się przesadą: if stringA? != nil { if !stringA!.isEmpty { ...blah blah } }
Pracowałem z nowym typem opcjonalnym w Javie 8 i natknąłem się na coś, co wygląda na typową operację, która nie jest obsługiwana funkcjonalnie: „orElseOptional” Rozważ następujący wzór: Optional<Result> resultFromServiceA = serviceA(args); if (resultFromServiceA.isPresent) return result; else { Optional<Result> resultFromServiceB = serviceB(args); if (resultFromServiceB.isPresent) return resultFromServiceB; else return serviceC(args); } Istnieje …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.