タグ付けされた質問 「parameter-passing」

パラメーター受け渡しは、関数のパラメーターに値を割り当てるプロセスです。

7
Bash:関数をパラメーターとして渡す
Bashのパラメーターとして関数を渡す必要があります。たとえば、次のコード: function x() { echo "Hello world" } function around() { echo "before" eval $1 echo "after" } around x 出力する必要があります: before Hello world after 私evalはその文脈では正しくないことを知っていますが、それは単なる例です:) 何か案が?

16
メソッドに多くの引数を渡すためのベストプラクティス?
時々、多くの引数を受け取るメソッドを書く必要があります。例えば: public void doSomething(Object objA , Object objectB ,Date date1 ,Date date2 ,String str1 ,String str2 ) { } この種の問題が発生すると、引数をマップにカプセル化することがよくあります。 Map<Object,Object> params = new HashMap<Object,Object>(); params.put("objA",ObjA) ; ...... public void doSomething(Map<Object,Object> params) { // extracting params Object objA = (Object)params.get("objA"); ...... } これは良い方法ではありません。paramsをマップにカプセル化すると、完全に効率が低下します。良い点は、クリーンなシグネチャであり、変更が最も少ない他のパラメータを簡単に追加できることです。この種の問題のベストプラクティスは何ですか?

10
Cの関数に引数として配列を渡す
配列を引数として含む関数を作成し、次のように配列の値を渡して呼び出します。 void arraytest(int a[]) { // changed the array a a[0]=a[0]+a[1]; a[1]=a[0]-a[1]; a[0]=a[0]-a[1]; } void main() { int arr[]={1,2}; printf("%d \t %d",arr[0],arr[1]); arraytest(arr); printf("\n After calling fun arr contains: %d\t %d",arr[0],arr[1]); } 私が見つけたのは、arraytest()値を渡して関数を呼び出しているのに、の元のコピーint arr[]が変更されていることです。 その理由を教えてください。


9
パラメータを一定にすることはできますか?
Javaと同等のC#を探していfinalます。それは存在しますか? C#には次のようなものがありますか? public Foo(final int bar); 上記の例でbarは、は読み取り専用変数であり、によって変更することはできませんFoo()。C#でこれを行う方法はありますか? 例えば、多分私は働くことになり、長い方法持っているx、yとzいくつかのオブジェクトの座標(int型)を。関数がこれらの値を変更してデータが破損しないことを絶対に確認したいと思います。したがって、私はそれらを読み取り専用と宣言したいと思います。 public Foo(int x, int y, int z) { // do stuff x++; // oops. This corrupts the data. Can this be caught at compile time? // do more stuff, assuming x is still the original value. }

2
Djangoはパラメータ付きのredirect()を返します
ビュー関数で、別のビューを呼び出してデータを渡したい: return redirect('some-view-name', backend, form.cleaned_data) 、ここで、backendはregistration.backendsオブジェクトであり、form.cleaned_dataはフォームデータのdictです(ただし、発生を防ぐために、両方を* argsまたは** kwargsとして送信する必要があります Don't mix *args and **kwargs in call to reverse()!エラーが発生します)。私がドキュメントで見つけたものから: def my_view(request): ... return redirect('some-view-name', foo='bar') 'some-view-name'引数を指定する必要があるようですが、それは単にビュー関数の名前ですか、それともURLの名前ですか?だから私はそれをdjango-registrationで行われるのと同じようにしたいと思います、ここで: to, args, kwargs = backend.post_registration_redirect(request, new_user) return redirect(to, *args, **kwargs) def post_registration_redirect(self, request, user): return ('registration_complete', (), {}) では、ビュー関数を直接呼び出すことはできますか、それともURLを指定する必要がありますか?そして、もっと重要なのは、私のfunciotn呼び出し(および必要に応じてURL)がどのように見えるべきかということです。バックエンドとcleaned_dataの両方が、後で使用するためにこのビューを通過するだけです。私はこれを試しましたが、それは不適切です: url(r'^link/$', some-view-name) def some-view-name(request, *args): これと同様に : …

1
関数を引数として別の関数に渡すさまざまな方法の違いは何ですか?
1つの関数がいくつかの可能な関数の1つを呼び出す状況があります。これは、関数をパラメーターとして渡すのに適した場所のようです。ZubkovによるこのQuoaraの回答では、これを行う3つの方法があります。 int g(int x(int)) { return x(1); } int g(int (*x)(int)) { return x(1); } int g(int (&x)(int)) { return x(1); } ... int f(int n) { return n*2; } g(f); // all three g's above work the same いつどの方法を使用する必要がありますか?違いは何ですか?私は最も単純なアプローチを好むので、なぜ最初の方法が常に使用されるべきではないのですか? 私の状況では、関数は1回だけ呼び出されますが、簡単にしたいと思います。私はそれをポインタ渡しで使用していて、最後に呼び出される関数がg(myFunc)どこにmyFuncあるかを呼び出すだけです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.