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”).
Używam Xcode 6 Beta 4. Mam dziwną sytuację, w której nie mogę dowiedzieć się, jak odpowiednio przetestować opcje. Jeśli mam opcjonalny xyz, to właściwy sposób na przetestowanie: if (xyz) // Do something lub if (xyz != nil) // Do something Dokumenty mówią, że należy to zrobić w pierwszy sposób, ale …
Czytałem o Optionals w Swift i widziałem przykłady, w których if letjest używany do sprawdzania, czy Argument opcjonalny przechowuje wartość, a jeśli tak - zrób coś z nieopakowaną wartością. Jednak widziałem, że w Swift 2.0 słowo kluczowe guard letjest używane głównie. Zastanawiam się, czy if letzostał usunięty ze Swift 2.0, …
Gdy ustawię wartość firstThingdomyślną, nilto zadziała, bez wartości domyślnej nilpojawia się błąd, że podczas wywoływania funkcji brakuje parametru. Wpisując Int?, myślałem, że jest to opcjonalne z domyślną wartością nil, mam rację? A jeśli tak, dlaczego nie działa bez = nil? func test(firstThing: Int? = nil) { if firstThing != nil …
Klasa Enum jest Serializable, więc nie ma problemu z serializacją obiektu za pomocą wyliczeń. W drugim przypadku klasa ma pola klasy java.util.Optional. W takim przypadku zgłaszany jest następujący wyjątek: java.io.NotSerializableException: java.util.Optional Jak sobie radzić z takimi klasami, jak je serializować? Czy można wysłać takie obiekty do zdalnego EJB lub przez …
Rozumiem, że w Swift wszystkie zmienne muszą mieć przypisaną wartość i że za pomocą opcji opcjonalnych możemy ustawić zmienną, która ma być ustawiona nilpoczątkowo. Nie rozumiem, co robi ustawienie zmiennej na a !, ponieważ miałem wrażenie, że to „odpakowuje” wartość z opcjonalnej. Pomyślałem, że robiąc to, gwarantujesz, że ta zmienna …
Mam poniższy kod, który jest trochę brzydki dla wielu sprawdzeń zerowych. String s = null; if (str1 != null) { s = str1; } else if (str2 != null) { s = str2; } else if (str3 != null) { s = str3; } else { s = str4; } …
Próbuję zrozumieć ifPresent()metodę OptionalAPI w Javie 8. Mam prostą logikę: Optional<User> user=... user.ifPresent(doSomethingWithUser(user.get())); Ale to powoduje błąd kompilacji: ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here) Oczywiście mogę zrobić coś takiego: if(user.isPresent()) { doSomethingWithUser(user.get()); } Ale to jest dokładnie jak zagracony nullczek. Jeśli zmienię kod na ten: user.ifPresent(new Consumer<User>() { …
Biorąc pod uwagę, że w Swift: var optionalString: String? let dict = NSDictionary() Jaka jest praktyczna różnica między następującymi dwoma stwierdzeniami: optionalString = dict.objectForKey("SomeKey") as? String vs optionalString = dict.objectForKey("SomeKey") as! String?
W języku Swift, w jaki sposób mogę napisać przypadek w instrukcji switch, która testuje przełączaną wartość względem zawartości opcjonalnej , pomijając wielkość liter, jeśli opcja zawiera nil? Oto jak to sobie wyobrażam: let someValue = 5 let someOptional: Int? = nil switch someValue { case someOptional: // someOptional is non-nil, …
Dlaczego to rzuca java.lang.NullPointerException? List<String> strings = new ArrayList<>(); strings.add(null); strings.add("test"); String firstString = strings.stream() .findFirst() // Exception thrown here .orElse("StringWhenListIsEmpty"); //.orElse(null); // Changing the `orElse()` to avoid ambiguity Pierwsza pozycja stringsto null, co jest wartością całkowicie akceptowalną. Ponadto findFirst()zwraca parametr Optional , co ma jeszcze większy sens, findFirst()aby móc …
Kiedy chcę sprawdzić, czy opcjonalna wartość logiczna jest prawdziwa, wykonanie tego nie działa: var boolean : Bool? = false if boolean{ } Powoduje to ten błąd: Opcjonalny typ „@IvalueBool?” nie może być używany jako wartość logiczna; zamiast tego przetestuj '! = nil' Nie chcę sprawdzać, czy jest zero; Chcę sprawdzić, …
Mam następujący kod wyszukiwania w Javie: return getTableViewController().getMe().getColumns().stream().filter($->Database.equalsColumnName($.getId(), columnId)).findFirst().get(); Chciałem znaleźć kolumnę według nazwy i zwrócić pierwszą znalezioną. Rozumiem, że jest przypadek, w którym nic nie znaleziono i należy to przetworzyć, ale jak? Czy tego właśnie chce przez to przekleństwo: 'Optional.get()' without 'isPresent()' check ? Jak naprawić? Chcę wrócić, nulljeśli …
Od wersji beta 8.3 zilliony ostrzeżeń „Interpolacja łańcuchów generuje opis debugowania dla wartości opcjonalnej; czy chodziło Ci o to, aby było to jawne?” pojawił się w moim kodzie. Na przykład ostrzeżenie pojawiło się w następującej sytuacji, w której opcje mogą prowadzić do zera: let msg = "*** Error \(options["taskDescription"]): cannot …
Używam biblioteki opcji programu doładowania, aby przeanalizować argumenty wiersza polecenia. Mam następujące wymagania: Po udostępnieniu „pomocy” wszystkie inne opcje są opcjonalne; Jeśli „pomoc” nie jest dostępna, wymagane są wszystkie inne opcje. Jak sobie z tym radzę? Oto mój kod, który to obsługuje i stwierdziłem, że jest on bardzo zbędny i …
Chcę zamienić następujący kod za pomocą java8 Optional: public Obj getObjectFromDB() { Obj obj = dao.find(); if (obj != null) { obj.setAvailable(true); } else { logger.fatal("Object not available"); } return obj; } Poniższy pseudokod nie działa, ponieważ nie ma orElseRunmetody, ale tak czy inaczej ilustruje mój cel: public Optional<Obj> getObjectFromDB() …
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.