問題タブ [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.
python - Python での変更/インプレース関数の呼び出しまたは適応
コードには、次のことを行うステートメントがよくあります。
これは非常に明確ですが、同時に冗長で冗長です。some_function
おそらく「変更」(「インプレース」)関数として機能させることにより、このステートメントを単純化する方法はPythonにあり ますか?
たとえば、Julia では、多くの場合、次のことができます。
some_function
これはに直接書き込むのバージョンにディスパッチされlong_descriptive_variable_name
、変数を効果的に更新します。
ジェネリック関数に対してPythonで同じことを簡潔に表現する方法はありますsome_function
か?
一般的なオブジェクトメソッドで同じことをするのはどうですか? つまり単純化
上記が現在のバージョンの Python で (簡単に) 実行できない場合、近い将来にこの変更を検討している PEP はありますか?
ios - タイプ「ShopDisplay」の不変値には、「setAllShopItems」という名前の変更メンバーのみがあります
let ではなく var である配列プロパティを設定しようとしています。setAllShopItems
メソッドに注意してください。
setAllShopItems()
このメソッドを次のように呼び出します。
getShopDisplay によって返されるプロパティも var です。
したがって、設定されているこれらの変数がすべて var であり、mutating
それらがstruct
s である場合に設定するたびにキーワードを使用すると、どのようにこのエラーが発生するのでしょうか?:
/Users/Ben/Documents/Development/MirrorMirror/MirrorMirror/ChooseShopViewController.swift:40:44: タイプ「ShopDisplay」の不変値には、「setAllShopItems」という名前の変更メンバーのみがあります
struct - Swift 2:構造体の変更メソッドがクロージャー内から機能しない
クロージャー内から構造体の 1 つで変更メソッドを呼び出そうとしています。動いていない。
から呼び出されるようにクロージャーをスケジュールしていますdispatch_after
。エラー メッセージが表示されますPartial application of 'mutating' method is not allowed
。
これはSwift 1.2で機能していました。Swift 2 にはありません。更新後にエラーが表示されました。Playground でエラーを表示するスタンドアロンの例を次に示します。
ちなみに、changeTimestamp
メソッドを次のように変更すると、まったく同じエラーが発生します。
swift - C ++可変キーワードに相当するSwift構造体?
C++mutable
キーワードに相当するものはありますか? 変化しない関数を含むプロトコルを実装する構造体がありますが、実装は内部的に内部状態を変化させます。プロトコル定義を変更せずに、関数を作成することなく、この関数によってクラスのメンバー var を変更可能にする方法はありますmutating
か?
例えば
swift - Self が UIViewController であるプロトコル拡張で関数を変更する
Swiftアプリケーションでネストされたビュー間でセグエを実行するために、単純なStringStack
形式の命名規則と並行して使用するプロトコルと対応する拡張機能を作成しました。"<origin>@<destination>"
私はSwiftが初めてなので、基本的に複数のビューで進むボタンと戻るボタンを実装するより良い方法があれば、それを受け入れます。ただし、以下に詳述する理由により、次のコードには問題があります。
私の最初の問題は、変更機能がプロトコル拡張で許可されていないことです。詳細については、このバグ レポートを参照してください。そのレポートには提案された回避策がありますが、次の結果はエラーであると主張してい'SegueForwardAndBackward' is not a subtype of 'UIViewController'
ます。
別の質問SegueForwardAndBackward
で詳しく説明されているように、クラスプロトコルを作成できる潜在的な解決策に出くわしました。ただし、クラス プロトコルを実装すると segfault が発生します。これは、拡張機能を と宣言しているためと思われますが、残念ながらこれを解決する方法がわかりません。where Self: UIViewController
現時点では、Swift のさらに別のバグのように見えるものに非常に不満を感じているため、アプローチを作り直すか、これらのエラーを解読するための助けをいただければ幸いです。
ご回答ありがとうございます。
swift - クロージャーで構造体参照をキャプチャしても、突然変異が発生することはありません
モデルに構造体を使用できるかどうかを確認しようとしていますが、これを試していました。を呼び出し vm.testClosure()
ても の値は変わらず、そのx
理由がわかりません。
swift - Swift: Enum ケースが型に見つかりません
私はここで多くの質問を探してきました.同様のタイトルのEnum case switch not found in typeが見つかりましたが、解決策はありません.
個々の状態で、次の信号機の色は何かという質問を解決するために、それ自体の変異を含む enum を使用したいと思います。
すべてのケースを可能なオプションとして設定しましたが、それでもエラーが返されます:
タイプ 'TrafficLights' に Enum 'case' が見つかりません