这是我尝试使用该map函数的循环:
volume_ids = [1,2,3,4,5]
ip = '172.12.13.122'
for volume_id in volume_ids:
my_function(volume_id, ip=ip)
Run Code Online (Sandbox Code Playgroud)
有没有办法可以做到这一点?如果它不是ip参数,那将是微不足道的,但我不知道如何处理它.
嘿,我正在使用PHP函数,它接受多个参数并格式化它们.目前,我正在使用这样的东西:
function foo($a1 = null, $a2 = null, $a3 = null, $a4 = null){
if ($a1 !== null) doSomethingWith($a1, 1);
if ($a2 !== null) doSomethingWith($a2, 2);
if ($a3 !== null) doSomethingWith($a3, 3);
if ($a4 !== null) doSomethingWith($a4, 4);
}
Run Code Online (Sandbox Code Playgroud)
但我想知道我是否可以使用这样的解决方案:
function foo(params $args){
for ($i = 0; $i < count($args); $i++)
doSomethingWith($args[$i], $i + 1);
}
Run Code Online (Sandbox Code Playgroud)
但仍然以相同的方式调用函数,类似于C#中的params关键字或JavaScript中的arguments数组.
我需要一个单例类来实例化一些参数.我现在这样做的方式是:
class SingletonExample
{
private SingletonExample mInstance;
//other members...
private SingletonExample()
{
}
public SingletonExample Instance
{
get
{
if (mInstance == null)
{
throw new Exception("Object not created");
}
return mInstance;
}
}
public void Create(string arg1, string arg2)
{
mInstance = new SingletonExample();
mInstance.Arg1 = arg1;
mInstance.ObjectCaller = new ObjectCaller(arg2);
//etc... basically, create object...
}
}
Run Code Online (Sandbox Code Playgroud)
该实例是"迟到"创建的,这意味着我没有在app启动时获得所有必需的参数.
一般来说,我不喜欢强制方法调用的排序,但我在这里看不到另一种方式.IoC也不会解决它,因为我可以在容器中注册它,我也可以调用Create()...
你认为这是一个好的方案吗?你有其他想法吗?
编辑:我知道我写的一个例子,它不是线程安全的,线程安全不是问题的一部分
我想为其中一个成员函数选择一个参数.如果没有提供参数,它将使用成员变量.
但是,当我尝试编译它时,它显示" 错误:无效使用非静态数据成员'Object :: initPos' "
只是为了隔离问题,我尝试默认一个int类型,它编译得很好.我想知道我的代码有什么问题,以及如何使用成员函数作为默认值.
谢谢您的帮助!
Object.h
class Object
{
public:
...
void MoveTo(double speed, Point position);
protected:
Point initPos;
Point currPos;
};
Run Code Online (Sandbox Code Playgroud)
Object.c
void Object::MoveTo(double speed, Point position = initPos)
{
currPos = postion;
}
Run Code Online (Sandbox Code Playgroud)
Point.h
class Point
{
...
private:
double x;
double y;
double z;
};
Run Code Online (Sandbox Code Playgroud) 有没有办法在package.json命令中传递参数?
我的剧本:
"scripts": {
"test": "node mytest.js $1 $2 | node_modules/tap-difflet/bin/tap-difflet"
}
Run Code Online (Sandbox Code Playgroud)
CLI npm run test 8080 production
然后,mytest.js我想得到论点process.argv
所以我在Linux中,当你从命令行执行它时,我希望有一个程序接受参数.
例如,
./myprogram 42 -b -s
那么程序会将该数字42存储为int并执行某些代码部分,具体取决于它是什么参数-b或-s.
假设我有:
alias gg="git grep"
Run Code Online (Sandbox Code Playgroud)
然后像:
gg "int x"
Run Code Online (Sandbox Code Playgroud)
有效,但是
gg int x
Run Code Online (Sandbox Code Playgroud)
得到投诉.有没有办法将gg重写为zsh中的函数,以便它获取gg之后的所有参数,并将它们填充到字符串中?
谢谢!
通常,如果我想将$ myarray中的参数传递给$ somefunction,我可以在php中使用
call_user_func_array($somefunction, $myarray);
Run Code Online (Sandbox Code Playgroud)
但是,当希望调用的函数是对象的构造函数时,这不起作用.出于相当明显的原因,它无法做到:
$myobj = new call_user_func_array($classname, $myarray);
Run Code Online (Sandbox Code Playgroud)
有什么相当优雅的确有效吗?
我想在调用jar文件时指定一些JVM参数:
java -jar filename.jar
Run Code Online (Sandbox Code Playgroud)
我以为我是这样做的:
java -Xms256m -Xmx512m -Djava.awt.headless=true jar filename.jar
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.我究竟做错了什么?
我有一个包含多个参数的批处理脚本.我正在读取它们的总数,然后像这样运行for循环:
@echo off
setlocal enabledelayedexpansion
set argCount=0
for %%x in (%*) do set /A argCount+=1
echo Number of processed arguments: %argCount%
set /a counter=0
for /l %%x in (1, 1, %argCount%) do (
set /a counter=!counter!+1 )
Run Code Online (Sandbox Code Playgroud)
我现在想做的是使用我的运行变量(x或counter)来访问输入参数.我在想这样的事情:
REM Access to %1
echo %(!counter!)
Run Code Online (Sandbox Code Playgroud)
在理想的世界中,这一行应该打印出我的第一个命令行参数,但显然它没有.我知道我对%操作员做错了什么,但无论如何我可以访问我这样的论点吗?
//编辑:只是为了清楚 - 问题在于它%(!counter!)为我提供了变量的值counter.counter=2它的意义给了我2而不是内容%2.