Запитання з тегом «optional»

Незмінний тип, який може містити значення або посилання. Кожен екземпляр цього типу або містить ненулеве значення, або посилання, або нічого не містить (у цьому випадку ми кажемо, що посилання "відсутнє"; ніколи не кажуть, що "містить нуль").

22
Що означає знак оклику в мові Swift?
Посібник з мови програмування Swift має такий приклад: 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 { …

10
Навіщо створювати "Неявно розгорнуті опціони", оскільки це означає, що ви знаєте, що існує цінність
Чому б ви створили "Неявно розкручений необов'язковий" проти створення просто звичайної змінної чи константи? Якщо ви знаєте, що його можна успішно розкрутити, то навіщо взагалі створювати необов’язковий? Наприклад, чому це: let someString: String! = "this is the string" буде корисніше, ніж: let someString: String = "this is the string" Якщо …

18
Чому не слід використовувати аргументи Java 8 Необов’язково
Я читав на багатьох веб-сайтах Необов’язково використовуватись лише як тип повернення, а не використовуватись у аргументах методів. Я намагаюся знайти логічну причину. Наприклад, у мене є логіка, яка має 2 необов'язкові параметри. Тому я думаю, було б доцільно написати свій підпис методу таким чином (рішення 1): public int calculateSomething(Optional<String> p1, …
392 java  java-8  optional 

5
Чи повинні повернути Java 8 отримувачам необов'язковий тип?
Optional Тип, представлений у Java 8, є новою річчю для багатьох розробників. Чи є гарною практикою метод повернення геттерного Optional<Foo>типу замість класичного Foo? Припустимо, що значення може бути null.

11
Функціональний стиль Java 8's Optional.ifPresent Java та if-not-Present?
У Java 8 я хочу зробити щось із Optionalоб’єктом, якщо він присутній, і зробити іншу справу, якщо його немає. if (opt.isPresent()) { System.out.println("found"); } else { System.out.println("Not found"); } Це, однак, не «функціональний стиль». Optionalмає ifPresent()метод, але я не в змозі застосувати orElse()метод. Таким чином, я не можу писати: opt.ifPresent( …

13
Використання за бажанням
Використовуючи Java 8 зараз протягом понад 6 місяців, я дуже задоволений новими змінами API. Один із напрямків, в які я все ще не впевнений, - це коли використовувати Optional. Я, здається, розмахую між бажанням використовувати його скрізь, де щось може бути null, і ніде зовсім. Здається, існує багато ситуацій, коли …
271 java  java-8  optional 

13
Що таке необов'язкове значення у Swift?
З документації Apple : Ви можете використовувати ifта letразом працювати з значеннями, які можуть бути відсутніми. Ці значення представлені як необов'язкові. Необов’язкове значення або містить значення, або містить, nilщоб вказати, що значення відсутнє. Напишіть знак питання ( ?) після типу значення, щоб позначити значення як необов'язкове. Чому ви хочете використовувати …
267 swift  optional 

4
Навіщо використовувати Optional.of над Optional.ofNullable?
При використанні класу Java 8 Optionalє два способи, за допомогою яких значення можна загорнути в необов'язкове. String foobar = <value or null>; Optional.of(foobar); // May throw NullPointerException Optional.ofNullable(foobar); // Safe from NullPointerException Я розумію, Optional.ofNullableце єдиний безпечний спосіб використання Optional, але чому він взагалі Optional.ofіснує? Чому б просто не використовувати …

8
Різниця між `Optional.orElse ()` та `Optional.orElseGet ()`
Я намагаюся зрозуміти різницю між методами Optional<T>.orElse()та Optional<T>.orElseGet(). Опис orElse()методу - "Поверніть значення, якщо воно є, інакше поверніть інше". Тим не менш, опис orElseGet()методу - "Повернути значення, якщо воно є, інакше викликайте інше та поверніть результат цього виклику." orElseGet()Метод приймає функціональний інтерфейс постачальника, який по суті не приймає ніяких параметрів …
206 java  java-8  optional 

5
Швидкий вибір необов'язкового параметра закриття
Подано: typealias Action = () -> () var action: Action = { } func doStuff(stuff: String, completion: @escaping Action) { print(stuff) action = completion completion() } func doStuffAgain() { print("again") action() } doStuff(stuff: "do stuff") { print("swift 3!") } doStuffAgain() Чи є спосіб зробити completionпараметр (і action) типу, Action?а також …


3
Використання декількох дозволів як у if-операторі у Swift
Я розгортаю два значення зі словника, і перед тим, як їх використовувати, я повинен передати їх і перевірити на правильність типу. Ось що я придумав: var latitude : AnyObject! = imageDictionary["latitude"] var longitude : AnyObject! = imageDictionary["longitude"] if let latitudeDouble = latitude as? Double { if let longitudeDouble = longitude …

4
Надання значення за замовчуванням для необов’язкового в Swift?
Ідіома для роботи з необов'язковими в Swift видається надмірно багатослівною, якщо все, що ви хочете зробити, це надати значення за замовчуванням у випадку, коли це нульове значення: if let value = optionalValue { // do something with 'value' } else { // do the same thing with your default value …
141 swift  optional 

6
Необов’язково абоElse Необов’язково на Java
Я працював з новим додатковим типом в Java 8 , і я натрапив на те, що схоже на звичайну операцію, яка не підтримується функціонально: "orElseOptions" Розглянемо таку схему: 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); } …
137 java  lambda  java-8  optional  java-9 

14
Swift: Тестування факультативів на нуль
Я використовую Xcode 6 Beta 4. У мене є така дивна ситуація, коли я не можу зрозуміти, як належним чином перевірити додаткові можливості. Якщо у мене є необов'язковий xyz, це правильний спосіб перевірки: if (xyz) // Do something або if (xyz != nil) // Do something У документах кажуть зробити …
137 ios  swift  optional 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.