我想设置一个cmdlet来启动和停止mysql,我正在尝试使用Start-Job.我的Powershell配置文件中包含以下内容:
$mysqlpath = "C:\Program Files\MySQL\MySQL Server 5.5\bin"
Function Start-Mysql
{
Start-Job -ScriptBlock { & "$mysqlpath\mysqld.exe" }
}
Run Code Online (Sandbox Code Playgroud)
然而,变量似乎没有在job命令中扩展?我一定错过了某种范围规则.有人可以建议吗?谢谢!
为了编写更好的代码,我已经致力于使用boost的智能指针.
应该boost::shared_ptr像这样初始化吗?
boost::shared_ptr<TypeX> px(new TypeX);
Run Code Online (Sandbox Code Playgroud)
我的混淆来自类似于此的代码块:
void MyClass::FillVector()
{
boost::shared_ptr<TypeX> tempX;
if(//Condition a)
{
boost::shared_ptr<TypeX> intermediateX(new TypeA);
tempX = intermediateX;
}
else
{
boost::shared_ptr<TypeX> intermediateX(new TypeB);
tempX = intermediateX;
}
_typeXVec.push_back(tempX); // member std::vector< boost::shared_ptr<TypeX> >
}
Run Code Online (Sandbox Code Playgroud)
是否有一种可接受的方法来跳过该中间版本的shared_ptr,同时将其保持在范围内以推回到_typeXVec?
谢谢.
编辑:想要澄清TypeA和TypeB都是TypeX的孩子.
请原谅,我是Python的新手,并试图学习Pythonic方法.我正在设计一个基本上从许多不同来源(文件)初始化其状态的类.我已将此行为隔离到单个实例方法中_load_from_file(file).它被称为多次__init__,但我通常喜欢将我的构造函数保留在类定义的开头,并将我的内部帮助器方法放在最后.
但是,如果我采用这种方法,_load_from_file则不会__init__在我想要使用它的地方定义.你怎么把pythonistas列出来?
详细说明:
class Thing(object):
def __init__(self, file_path):
f = open('file_path')
_load_from_file(self,"someData",f) # ISSUES!
_load_from_file(self,"moreData",f) # WRONG!
f.close()
# Interface
# ...
# Internal - Where do you guys put this stuff?
def _load_from_file(self,thingToLoad,file):
# logic
Run Code Online (Sandbox Code Playgroud)