Questions tagged «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"); ...... } 这不是一个好习惯,将参数封装到地图中完全是浪费效率。好的是,干净的签名,易于以最少的修改添加其他参数。解决此类问题的最佳实践是什么?

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一些对象(整数)的坐标。我想绝对确定该函数不会以任何方式更改这些值,从而损坏数据。因此,我想将它们声明为只读。 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是表单数据的字典(但必须同时以* 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调用(如果需要,还有一个网址)应该是什么样子?后端和cleaned_data都通过此视图传递,以供以后使用。我已经尝试过了,但这是不合适的: url(r'^link/$', some-view-name) def some-view-name(request, *args): 以及这个: return …




5
如何在简单的php函数中使用“依赖注入”,我应该打扰吗?
我一直听到人们在谈论依赖注入及其带来的好处,但是我并不真正了解它。 我想知道这是否是“我一直将数据库连接作为参数传递”的解决方案。 我尝试阅读有关Wikipedia的条目,但是该示例是用Java编写的,因此我不太了解它试图阐明的区别。(http://en.wikipedia.org/wiki/Dependency_injection)。 我读了这篇php-dependency-injection-in文章(http://www.potstuck.com/2009/01/08/php-dependency-injection/),看来目标是不将依赖项传递给对象直接,但要封锁对象的创建及其依赖项的创建。我不确定如何在使用php函数的上下文中应用它。 此外,是否存在以下依赖关系注入,是否应该在功能上下文中尝试进行依赖关系注入? 版本1 :(我每天创建但不喜欢的那种代码) function get_data_from_database($database_connection){ $data = $database_connection->query('blah'); return $data; } 版本2 :(不必通过数据库连接,但也许不必进行依赖注入?) function get_database_connection(){ static $db_connection; if($db_connection){ return $db_connection; } else { // create db_connection ... } } function get_data_from_database(){ $conn = get_database_connection(); $data = $conn->query('blah'); return $data; } $data = get_data_from_database(); 版本3 :(“对象” /数据的创建是分开的,并且数据库代码仍然是,所以也许可以算作依赖注入?) …

9
您可以在R中通过引用吗?
您可以通过引用加上“ R”吗?例如,在以下代码中: setClass("MyClass", representation( name="character" )) instance1 <-new("MyClass",name="Hello1") instance2 <-new("MyClass",name="Hello2") array = c(instance1,instance2) instance1 array instance1@name="World!" instance1 array 输出是 > instance1 An object of class “MyClass” Slot "name": [1] "World!" > array [[1]] An object of class “MyClass” Slot "name": [1] "Hello1" [[2]] An object of class “MyClass” Slot "name": …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.