問題タブ [immutablearray]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C#のImmutableArrayとは
私はこれを見ます:
このパッケージは、不変コレクションとも呼ばれる、スレッド セーフで内容が決して変更されないことが保証されているコレクションを提供します。
しかし、ImmutableArray をいつ使用する必要があるのか正確にはわかりません。
編集: 現在、Microsoft の github パッケージは .NET エコシステムの一部になっています。リファレンスはこちらになりました。
d - D で不変の連想配列を作成する方法
Dで不変の連想配列を作成する方法はありますか? 連想配列を定義する方法はないようです。1つだけ宣言します。
arrays - D の不変長の可変配列
Dで、コンパイル時に長さが不明な可変配列を静的な長さにすることは可能ですか?
python - Python での空のタプルの潜在的な用途
私は Python でクラスレベル変数のリスクをいじっていましたが、クラスレベル変数としてのリストのリスクは、タプル (空のタプルなど) で解決できると考えました。
取った:
これは次の理由で危険です。
None
空のタプル ( ?) の代わりに使用するtuple()
と、反復時に失敗するため、代わりに危険になる可能性があります。
不変性のため、これは良い選択肢だと思いますが、どこかでこれについて話している人を見たことがないと思います。この推論に欠陥があると思いますか? それはpythonicですか?
arrays - Swiftで不変の空の配列を作成することの長所と短所
私はSwiftプログラミング言語が初めてです。Appleのサイトから学んでいます。以下のコード行に出くわしました:
これに関連する別の質問をしましたが、完全ではありません。Swift で空の不変配列を作成することの長所と短所を知りたいです。上記のコード行には let キーワードが含まれているため、文字列型の空の配列がメモリ内に作成されることが明確に示されています。私の興味のある点は、なぜ誰かがそれを必要とするのでしょうか? 使い道はありますか?そうでなければ、Apple はそれを許可しなかったでしょう。そのため、例の長所と短所を知りたいです。
注: Google と StackOverflow でクエリを検索しましたが、探している正確な理由が見つかりませんでした。したがって、この質問に反対票を投じる前によく考えてください。
編集:以前に尋ねられた質問は、現在の質問にまったく対応していません。この質問により、どのシナリオでそれを行うべきかを知りたいです。Apple が空の不変配列を作成できるような機能を提供する理由。空の配列には値がなく、作成後はその値を空として編集することはできず、項目を追加したり削除したりすることもできません。では、なぜコンパイルはそのような行を書くことを許可するのでしょうか? 私が今はっきりしていることを願っています。
c# - 構造体で ImmutableArray 型の静的フィールドを使用すると TypeLoadException が発生するのはなぜですか?
ImmutableArray<T>
構造体の型である構造体で型の静的フィールドを使用しようとしていますT
。ただし、これを実行しようとTypeLoadException
すると、プログラムを実行するとすぐに取得されます。これは、プログラム自体が実行を開始する前に発生するようです。利用可能なスタック トレースがなく、何もステップ実行できません。問題を説明する簡単な例を次に示します。
私が得るエラーコードは次のとおりです: System.TypeLoadException は処理さ
れませんでした メッセージ: mscorlib.dll で型 'System.TypeLoadException' の未処理の例外が発生しました 追加情報: アセンブリ 'Alpha, Version= から型 'Alpha.Program+Simple' を読み込めませんでした1.0.0.0、カルチャ = ニュートラル、PublicKeyToken = null'。
を削除してフィールドを初期化しないImmutableArray<Simple>.Empty
と、実行に失敗します。ただし、静的フィールドを次のいずれかに変更すると、プログラムは問題なく実行されます。
Visual Studio Community 2015 と System.Collections.Immutable バージョン 1.1.37 を使用しています。
c# - 別の dll のインターフェイスで ImmutableArray<> を使用してメソッドを呼び出すと、System.MissingMethodException がスローされる
問題
2 つのそれぞれの dll に以下のコードがあります。dll1 は dll2 に依存します。
がDoWork()
呼び出されると、正常に実行されmyInterface.MyListMethod(ImmutableList<byte>.Empty);
ます。実行しようとするmyInterface.MyArrayMethod(ImmutableArray<byte>.Empty);
と、次の例外がスローされます。
Exception:System.MissingMethodException: Method not found: Namespace.MyArrayMethod(System.Collections.Immutable.ImmutableArray'1<Byte>)
dll1.dll
dll2.dll
テスト
私の観点からは、ImmutableArray<>
上記のように、Immutable 名前空間の他の型を含む複数の型でこれを試したので、それは問題があるようです。ImmutableArray<>
私が試した範囲でのみ発生します。
また、両方の dll が現在の dll であり、古いキャッシュ バージョンが gac にぶら下がっていないことも確認しました。別のメソッドを持つようにインターフェイスを更新し、MyArrayMethod が期待どおりに機能する前にそれを呼び出します。
ImmutableArray<>
Visual Studios は特に、 paramを含むインターフェイスのメソッドへの参照の呼び出しを検出しませんが、 ImmutableList<>
. ImmutableArray<>
メソッドからパラメーターを削除すると、参照も取得されます。
ソリューションは正常にビルドされますが、このエラーがスローされるのは、実行時に JIT を試行した場合のみです。
scala - Immutable を使用して文字列を配列に追加する
文字列のリストを入力として持つ (そのうちの 1 つが である可能性がありますNone
)。を使用して文字列の配列を返すにはどうすればよいですかImmutable Object
。
var
orを使用すると非常に簡単ですMutable Object
。ここに例を示します。
質問val
1 :オブジェクトだけを使用したい場合はどうすればよい
注意:返さlist2
れる配列にオブジェクトNone
が含まれていない場合None
質問2 : ..and iflist1
andlist2
wereList[CustomClass]
whereCustomClass
is
case class CustomClass(string:String)
どうしますか?
質問 3 : ...メソッドを複雑にするとどうなりますか...
case class CustomClass1(string1:String)
case class CustomClass2(string2:String)
明らかに、CustomClass1 と CustomClass2 は、それらを互いに異なるものにする他のパラメーターをクラスに持っている可能性があります。メソッドのシグネチャは次のようになります。