問題タブ [mutating-function]

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.

0 投票する
2 に答える
67 参照

python - Python での変更/インプレース関数の呼び出しまたは適応

コードには、次のことを行うステートメントがよくあります。

これは非常に明確ですが、同時に冗長で冗長です。some_functionおそらく「変更」(「インプレース」)関数として機能させることにより、このステートメントを単純化する方法はPythonにあり ますか?

たとえば、Julia では、多くの場合、次のことができます。

some_functionこれはに直接書き込むのバージョンにディスパッチされlong_descriptive_variable_name、変数を効果的に更新します。

ジェネリック関数に対してPythonで同じことを簡潔に表現する方法はありますsome_functionか?

一般的なオブジェクトメソッドで同じことをするのはどうですか? つまり単純化

上記が現在のバージョンの Python で (簡単に) 実行できない場合、近い将来にこの変更を検討している PEP はありますか?

0 投票する
0 に答える
45 参照

ios - タイプ「ShopDisplay」の不変値には、「setAllShopItems」という名前の変更メンバーのみがあります

let ではなく var である配列プロパティを設定しようとしています。setAllShopItemsメソッドに注意してください。

setAllShopItems()このメソッドを次のように呼び出します。

getShopDisplay によって返されるプロパティも var です。

したがって、設定されているこれらの変数がすべて var であり、mutatingそれらがstructs である場合に設定するたびにキーワードを使用すると、どのようにこのエラーが発生するのでしょうか?:

/Users/Ben/Documents/Development/MirrorMirror/MirrorMirror/ChooseShopViewController.swift:40:44: タイプ「ShopDisplay」の不変値には、「setAllShopItems」という名前の変更メンバーのみがあります

0 投票する
1 に答える
378 参照

struct - Swift 2:構造体の変更メソッドがクロージャー内から機能しない

クロージャー内から構造体の 1 つで変更メソッドを呼び出そうとしています。動いていない。

から呼び出されるようにクロージャーをスケジュールしていますdispatch_after。エラー メッセージが表示されますPartial application of 'mutating' method is not allowed

これはSwift 1.2で機能していました。Swift 2 にはありません。更新後にエラーが表示されました。Playground でエラーを表示するスタンドアロンの例を次に示します。

ちなみに、changeTimestampメソッドを次のように変更すると、まったく同じエラーが発生します。

0 投票する
1 に答える
234 参照

swift - C ++可変キーワードに相当するSwift構造体?

C++mutableキーワードに相当するものはありますか? 変化しない関数を含むプロトコルを実装する構造体がありますが、実装は内部的に内部状態を変化させます。プロトコル定義を変更せずに、関数を作成することなく、この関数によってクラスのメンバー var を変更可能にする方法はありますmutatingか?

例えば

0 投票する
1 に答える
1031 参照

swift - Self が UIViewController であるプロトコル拡張で関数を変更する

Swiftアプリケーションでネストされたビュー間でセグエを実行するために、単純なStringStack形式の命名規則と並行して使用するプロトコルと対応する拡張機能を作成しました。"<origin>@<destination>"私はSwiftが初めてなので、基本的に複数のビューで進むボタンと戻るボタンを実装するより良い方法があれば、それを受け入れます。ただし、以下に詳述する理由により、次のコードには問題があります。

私の最初の問題は、変更機能がプロトコル拡張で許可されていないことです。詳細については、このバグ レポートを参照してください。そのレポートには提案された回避策がありますが、次の結果はエラーであると主張してい'SegueForwardAndBackward' is not a subtype of 'UIViewController'ます。

別の質問SegueForwardAndBackwardで詳しく説明されているように、クラスプロトコルを作成できる潜在的な解決策に出くわしました。ただし、クラス プロトコルを実装すると segfault が発生します。これは、拡張機能を と宣言しているためと思われますが、残念ながらこれを解決する方法がわかりません。where Self: UIViewController

現時点では、Swift のさらに別のバグのように見えるものに非常に不満を感じているため、アプローチを作り直すか、これらのエラーを解読するための助けをいただければ幸いです。

ご回答ありがとうございます。

0 投票する
3 に答える
5023 参照

swift - クロージャーで構造体参照をキャプチャしても、突然変異が発生することはありません

モデルに構造体を使用できるかどうかを確認しようとしていますが、これを試していました。を呼び出し vm.testClosure()ても の値は変わらず、そのx理由がわかりません。

0 投票する
2 に答える
6194 参照

swift - Swift: Enum ケースが型に見つかりません

私はここで多くの質問を探してきました.同様のタイトルのEnum case switch not found in typeが見つかりましたが、解決策はありません.

個々の状態で、次の信号機の色は何かという質問を解決するために、それ自体の変異を含む enum を使用したいと思います。

すべてのケースを可能なオプションとして設定しましたが、それでもエラーが返されます:

タイプ 'TrafficLights' に Enum 'case' が見つかりません