タグ付けされた質問 「optional」

値または参照を含むことができる不変の型。このタイプの各インスタンスには、null以外の値または参照が含まれるか、何も含まれません(この場合、参照は「存在しない」と言います。「nullを含む」とは言われません)。

23
文字列のnilと空をチェック
以下のための文字列をチェックする方法があるnilと""スウィフトでは?Railsでは、blank()チェックに使用できます。 私は現在これを持っていますが、やりすぎのようです: if stringA? != nil { if !stringA!.isEmpty { ...blah blah } }

8
スウィフト:ガードレットvsレットレット
私はSwiftのオプションについて読んでいて、 if let、オプションが値を保持しているかどうかをチェックするために使用される。 ただし、Swift 2.0ではキーワードguard letが主に使用されていることを確認しました。if letSwift 2.0から削除されたのか、それともまだ使えるのか。 を含むプログラムをに変更する必要if letがありguard letますか?

6
java.util.OptionalがSerializableでない理由、そのようなフィールドでオブジェクトをシリアル化する方法
EnumクラスはSerializableなので、列挙型を使用してオブジェクトをシリアル化しても問題はありません。もう1つのケースは、クラスにjava.util.Optionalクラスのフィールドがある場合です。この場合、次の例外がスローされます。java.io.NotSerializableException:java.util.Optional そのようなクラスを処理する方法、それらをシリアル化する方法?そのようなオブジェクトをリモートEJBまたはRMI経由で送信することは可能ですか? これは例です: import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.Optional; import org.junit.Test; public class SerializationTest { static class My implements Serializable { private static final long serialVersionUID = 1L; Optional<Integer> value = Optional.empty(); public void setValue(Integer i) { this.i = Optional.of(i); } public Optional<Integer> getValue() { return …

9
Swift関数のデフォルトのオプションパラメータ
firstThingデフォルトに設定するnilと、これは機能します。デフォルト値がnilなければ、関数を呼び出すときにパラメーターが欠落しているというエラーが発生します。 入力するInt?と、デフォルト値がのオプションになっていると思いましたがnil、正しいですか?もしそうなら、なぜそれなしで動作しないの= nilですか? func test(firstThing: Int? = nil) { if firstThing != nil { print(firstThing!) } print("done") } test()
107 swift  function  optional 

1
「?」を使った変数の装飾のスウィフト (疑問符)と“!” (エクスクラメーション・マーク)
Swiftではすべての変数に値を設定する必要があることと、オプションを使用して変数をnil最初に設定するように設定できることを理解しています。 !私がこれをオプションから値を「アンラップ」するという印象を受けたので、私が理解していないのは、変数をaで設定することです。そうすることで、その変数でアンラップする値があることを保証していると思いました。これがIBActionsなどで使用されている理由です。 つまり、簡単に言うと、次のようなことをしたときに初期化される変数は何ですか。 var aShape : CAShapeLayer! そして、なぜ/いつこれを行うのですか?
106 swift  optional 

9
Java 8での複数のnullチェック
複数のnullチェックに対して少し醜い以下のコードがあります。 String s = null; if (str1 != null) { s = str1; } else if (str2 != null) { s = str2; } else if (str3 != null) { s = str3; } else { s = str4; } だからOptional.ofNullable、以下のように使ってみましたが、誰かが私のコードを読んでいるかどうかはまだわかりません。Java 8でそれを行うための最良のアプローチは何ですか? String s = Optional.ofNullable(str1) .orElse(Optional.ofNullable(str2) .orElse(Optional.ofNullable(str3) .orElse(str4))); Java …


5
Optional.ifPresent()の適切な使用法
Java 8のAPI のifPresent()メソッドを理解しようとしていOptionalます。 私は単純なロジックを持っています: Optional<User> user=... user.ifPresent(doSomethingWithUser(user.get())); しかし、これによりコンパイルエラーが発生します。 ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here) もちろん、私はこのようなことをすることができます: if(user.isPresent()) { doSomethingWithUser(user.get()); } しかし、これは雑然としたnull小切手とまったく同じです。 コードをこれに変更すると: user.ifPresent(new Consumer<User>() { @Override public void accept(User user) { doSomethingWithUser(user.get()); } }); コードが汚れてきているので、以前のnullチェックに戻ることを考えさせられます。 何か案は?
94 java  lambda  java-8  optional 

3
Swift:スイッチケースでのオプション値に対するテスト
Swiftでは、オプションの内容に対して切り替えられる値をテストするスイッチステートメントでケースをどのように記述できますnilか?オプションが含まれている場合、ケースをスキップしますか? これが私がこれが見えるかもしれないと想像する方法です: let someValue = 5 let someOptional: Int? = nil switch someValue { case someOptional: // someOptional is non-nil, and someValue equals the unwrapped contents of someOptional default: // either, someOptional is nil, or someOptional is non-nil but someValue does not equal the unwrapped contents of someOptional } これとまったく同じように書くと、コンパイラーsomeOptionalはアンラップされていないと文句を言いますが!、最後に追加して明示的にアンラップすると、もちろん、実行時エラーが発生しsomeOptionalますnil。の?代わりに追加することは!私にはある程度の意味がありますが(オプションの連鎖の精神では)、コンパイラエラーがなくなるわけではありません(つまり、実際にはオプションのラップが解除されません)。

5
最初に見つかった要素がnullの場合、findFirst()がNullPointerExceptionをスローするのはなぜですか?
なぜこれがスローするの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 の最初の項目stringsはnull、です。これは完全に許容できる値です。さらに、オプションをfindFirst()返します。これは、sを処理できるようにするためにさらに意味があります。findFirst()null 編集:orElse()あいまいさが少なくなるようにを更新しました。

8
解決方法「文字列補間は、オプション値のデバッグ記述を生成します。これを明示するつもりでしたか?」Xcode 8.3ベータ版では?
ベータ8.3以降、無数の警告「文字列補間はオプション値のデバッグ記述を生成します。これを明示的にするつもりでしたか?」私のコードに現れました。 たとえば、次の状況で警告が表示され、オプションがnilになる可能性があります。 let msg = "*** Error \(options["taskDescription"]): cannot load \(sUrl) \(error)" 以前に設計したように、私(およびコンパイラ)はオプションを「nil」として補間しても問題ありませんでした。しかし、コンパイラは考えを変えました。 コンパイラーが提案するのは、次のような説明を含むStringコンストラクターを追加することです。 let msg = "*** Error \(String(describing: options["taskDescription"])): cannot load \(sUrl) \(error)" 明らかに、結果は明白ですが、私の意見では非常に面倒でもあります。より良いオプションはありますか?これらの警告をすべて修正する必要がありますか、それとも次のベータ版を待つ必要がありますか?

4
Boostライブラリプログラムオプションを使用した必須およびオプションの引数
Boost Program OptionsLibraryを使用してコマンドライン引数を解析しています。 次の要件があります。 「ヘルプ」が提供されると、他のすべてのオプションはオプションになります。 「ヘルプ」が提供されない場合、他のすべてのオプションが必要です。 どうすればこれに対処できますか?これを処理する私のコードは次のとおりですが、非常に冗長であることがわかりました。簡単に実行できるはずですよね? #include <boost/program_options.hpp> #include <iostream> #include <sstream> namespace po = boost::program_options; bool process_command_line(int argc, char** argv, std::string& host, std::string& port, std::string& configDir) { int iport; try { po::options_description desc("Program Usage", 1024, 512); desc.add_options() ("help", "produce help message") ("host,h", po::value<std::string>(&host), "set the host server") ("port,p", …

12
存在しない場合、オプションでロジックを実行する方法は?
java8を使用して次のコードを置き換えたいOptional: public Obj getObjectFromDB() { Obj obj = dao.find(); if (obj != null) { obj.setAvailable(true); } else { logger.fatal("Object not available"); } return obj; } 次の擬似コードはorElseRunメソッドがないため機能しませんが、とにかく私の目的を示しています。 public Optional<Obj> getObjectFromDB() { Optional<Obj> obj = dao.find(); return obj.ifPresent(obj.setAvailable(true)).orElseRun(logger.fatal("Object not available")); }
83 java  java-8  optional 



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.