কোডের এই লাইনটির অর্থ কী?
label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;
?
এবং :
আমাকে বিভ্রান্ত করে।
variable ?: anotherVariable
, এর অর্থ কী? '
(valOrVar != 0) ? valOrVar : anotherValorvar
কোডের এই লাইনটির অর্থ কী?
label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;
?
এবং :
আমাকে বিভ্রান্ত করে।
variable ?: anotherVariable
, এর অর্থ কী? '
(valOrVar != 0) ? valOrVar : anotherValorvar
উত্তর:
এটি সি টার্নারি অপারেটর (উদ্দেশ্য-সি হ'ল সি-সুপারিটসেট):
label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;
শব্দার্থগত সমতুল্য
if(inPseudoEditMode) {
label.frame = kLabelIndentedRect;
} else {
label.frame = kLabelRect;
}
কোনও প্রথম উপাদান (উদাঃ variable ?: anotherVariable
) সহ তিনটি অর্থ একই হিসাবে(valOrVar != 0) ? valOrVar : anotherValOrVar
?:
) ব্যতীত টার্নারি অপারেটর এমন পরিস্থিতিতে আরও উন্নত যেখানে বাম দিকটি একটি অভিব্যক্তি, কারণ ?:
এটি একাধিকবার মূল্যায়ন হতে বাধা দেয়। উদাহরণস্বরূপ: দু'বার [myArray firstObject] ? [myArray firstObject] : @"Hello World";
কল firstObject
(যদি firstObject
ফিরে না আসে nil
), যেখানে [myArray firstObject] ?: @"Hello World";
অভিন্ন ফলাফল তৈরি করে তবে firstObject
একবারে কখনও কল করে না ।
?:
বলা হয় । এবং অবশ্যই এই ক্ষেত্রে আমরা একটি উপাদান বাদ দিচ্ছি, এটি আর কোনও টেরিনারি অপারেটর নয় তবে বাইনারি অপারেটর । বাইনারি অপারেটর অপারেটার আমরা সাধারণত (যখন প্রোগ্রামিং ব্যবহার বেশীরভাগ অন্তর্ভুক্ত , , , , , , , , ইত্যাদি)। *
+
-
^
|
||
&
>>
সহজভাবে, যুক্তি হবে
(condition) ? {code for YES} : {code for NO}
ব্যারি ওয়ার্কের দুর্দান্ত ব্যাখ্যাটির উপর ভিত্তি করে ...
টার্নারি অপারেটর সম্পর্কে যা গুরুত্বপূর্ণ তা হ'ল এটি এমন জায়গায় ব্যবহার করা যেতে পারে যেখানে যদি-অন্যথায় না পারে। অর্থাত: একটি শর্ত বা পদ্ধতির প্যারামিটারের ভিতরে।
[NSString stringWithFormat: @"Status: %@", (statusBool ? @"Approved" : @"Rejected")]
... যা প্রিপ্রসেসর ধ্রুবকগুলির জন্য দুর্দান্ত ব্যবহার:
// in your pch file...
#define statusString (statusBool ? @"Approved" : @"Rejected")
// in your m file...
[NSString stringWithFormat: @"Status: %@", statusString]
এটি আপনাকে যদি অন্য পদ্ধতিতে স্থানীয় ভেরিয়েবলগুলি ব্যবহার ও প্রকাশ করা থেকে বাঁচায়। FTW এর!
এটি কেবলমাত্র সাধারণ টেরিনারি অপারেটর । যদি প্রশ্ন চিহ্নের আগের অংশটি সত্য হয়, তবে এটি কোলনের আগে অংশটি মূল্যায়ন করে এবং ফেরত দেয়, অন্যথায় এটি কোলনের পরে অংশটি মূল্যায়ন করে এবং ফেরত দেয়।
a?b:c
মত
if(a)
b;
else
c;
এটি সি এর অংশ, সুতরাং এটি উদ্দেশ্য-সি নির্দিষ্ট নয়। এখানে একটি if
বিবৃতিতে অনুবাদ করা হয়েছে:
if (inPseudoEditMode)
label.frame = kLabelIndentedRec;
else
label.frame = kLabelRect;
এটি যদি-তবে-অন্য বিবৃতি লেখার কেবল একটি ছোট ফর্ম। এর অর্থ নীচের কোডের মতোই:
if(inPseudoEditMode)
label.frame = kLabelIndentedRect;
else
label.frame = kLabelRect;
টার্নারি অপারেটর উদাহরণ .যদি মহিলা বুলিয়ান ভেরিয়েবলের মান হ্যাঁ, তবে "জেন্ডার ইস FEMALE মহিলা" অন্যথায় "লিঙ্গার হ্যাঁ" মুদ্রণ করুন
? means = execute the codes before the : if the condition is true.
: means = execute the codes after the : if the condition is false.
উদ্দেশ্য গ
BOOL isFemale = YES; NSString *valueToPrint = (isFemale == YES) ? @"GENDER IS FEMALE" : @"GENDER IS MALE"; NSLog(valueToPrint); //Result will be "GENDER IS FEMALE" because the value of isFemale was set to YES.
সুইফ্টের জন্য
let isFemale = false let valueToPrint:String = (isFemale == true) ? "GENDER IS FEMALE" : "GENDER IS MALE" print(valueToPrint) //Result will be "GENDER IS MALE" because the isFemale value was set to false.
মজাদার ঘটনা, উদ্দেশ্য-সিতে আপনি যদি নাল / নীল পরীক্ষা করতে চান তবে উদাহরণস্বরূপ:
-(NSString*) getSomeStringSafeCheck
{
NSString *string = [self getSomeString];
if(string != nil){
return String;
}
return @"";
}
এটি করার দ্রুত উপায় হ'ল:
-(NSString*) getSomeStringSafeCheck
{
return [self getSomeString] != nil ? [self getSomeString] : @"";
}
তারপরে আপনি এটিকে একটি সহজ উপায়ে আপডেট করতে পারেন:
-(NSString*) getSomeStringSafeCheck
{
return [self getSomeString]?: @"";
}
কারণ উদ্দেশ্য-সি:
সুতরাং আপনি লিখুন বলতে দিন:
[self getSomeString] != nil?: @"";
দ্বিতীয় প্যারামিটারটি বুলিয়ান মানটি ফিরিয়ে দিচ্ছে, সুতরাং একটি ব্যতিক্রম ছুঁড়ে দেওয়া হবে।
এটি তিনটি অপারেটর যেমন একটি / অন্য বিবৃতিটির মতো।
if(a > b) {
what to do;
}
else {
what to do;
}
টেরিনারি অপারেটরে এটি এমন: শর্ত? শর্তটি সত্য হলে কি করবেন: এটি মিথ্যা হলে কী করবেন;
(a > b) ? what to do if true : what to do if false;
আমি সবেমাত্র টার্নারি অপারেটর সম্পর্কে নতুন কিছু শিখেছি। মাঝের অপারেন্ডকে বাদ দেওয়া সংক্ষিপ্ত রূপটি সত্যই মার্জিত এবং সি প্রাসঙ্গিক থাকার অনেকগুলি কারণের মধ্যে এটি একটি। এফওয়াইআই, আমি সি # তে প্রয়োগ করা একটি রুটিনের প্রসঙ্গে প্রথমে সত্যই আমার মাথাটা পেয়েছিলাম, যা এছাড়াও টার্নারি অপারেটরকে সমর্থন করে। যেহেতু ত্রৈমাসিক অপারেটর সি-তে রয়েছে, এটি যুক্তিতে দাঁড়িয়েছে যে এটি অন্যান্য ভাষায় হবে যা মূলত এটির এক্সটেনশন (যেমন, উদ্দেশ্য-সি, সি #)।
সবাই যেমন উল্লেখ করেছে যে এটি শর্তাধীন অপারেটরকে উপস্থাপন করার একটি উপায়
if (condition){
true
}
else {
false
}
টার্নারি অপারেটর ব্যবহার করে (condition)? true:false
অতিরিক্ত তথ্য যুক্ত করতে, আমাদের কাছে সুইফটে এটি ব্যবহার করে প্রতিনিধিত্ব করার নতুন উপায় রয়েছে ??
।
let imageObject: UIImage = (UIImage(named: "ImageName")) ?? (initialOfUsername.capitalizedString).imageFromString
যা অনুরূপ
int a = 6, c= 5;
if (a > c)
{
a is greater
} else {
c is greater
}
সমতুল্য
if (a>c)?a:c
==> এর সমান if (a>c)?:c
পরিবর্তে ?:
আমরা ??
দ্রুত ব্যবহার করতে পারেন ।