I just found that I was not clear enough to describe the situation here. Let me explain again. I am going to take your code snippet as an example here:
[code=”pseoducode”]
function init(){
branch = “master”
}
function updateBranchName(string newName)
{
if not isempty(newName)
branch = newName
}
int main() {
init();
updateBranchName(“master/add-option-for-select-icons-in-pref”);
updateBranchName(“”); // updateBranchName will be called from different seprate thread.
return 0;
}
[/code]
As you have written, the initialization was in the same method. That is a good approach obviously. But my situation arrived when initialization was in separate method. Yes, what you have suggested is the best approach and we should always follow that one. So, both of following two approach are ok.
[code = “approach1”]
function updateBranchName(string newName)
{
branch = master
if not isempty(newName)
branch = newName
}
[code]
[code = “approach2”]
function updateBranchName(string newName)
{
branch = string.empty;
if not isempty(newName)
branch = newName
else
branch = master
}
[code]
branch = “master”
if not isempty(argv[1])
branch = argv[1]
অর্থাৎ কাস্টম প্যারামিটার দিলে branch এর ভ্যালু বদলাবে, নাতো master ই থাকবে। এটা মানছি যে else ব্লক দিলে রিডেবল বেশী হবে এবং এরর হবার চান্স কম। কিন্তু সেক্ষেত্রে branch এর ভ্যালু অযথা ২য়বার সেট হচ্ছেনা? অথবা এরকম করা যেতে পারে।
branch =
if not isempty(argv[1])
branch = argv[1]
else
branch = “master”
এখানে শুরুতে ভেরিয়েবল জাস্ট ডিক্লেয়ার হবে, পরে ভ্যালু সেট করলাম। আপনারা বাস্তবে প্রজেক্টের ক্ষেত্রে এইরকম সিচুয়েশনে কি স্টেপ ফলো করেন জানালে উপকৃত হব।
]]>