এনএসএলগে বুলিয়ান পতাকা কীভাবে প্রিন্ট করা যায়?


311

এনএসএলগে বুলিয়ান পতাকার মান প্রিন্ট করার কোনও উপায় আছে কি?

উত্তর:


503

আমি এটি কীভাবে করব তা এখানে:

BOOL flag = YES;
NSLog(flag ? @"Yes" : @"No");

?: এই ফর্মের টেরিনারি শর্তসাপেক্ষ অপারেটর:

condition ? result_if_true : result_if_false

যথাযথ যেখানে যথাযথ লগ স্ট্রিং প্রতিস্থাপন।


55
এটিকে ম্যাক্রো #define StringFromBOOL(b) ((b) ? @"YES" : @"NO")
করাও

3
এই কিভাবে এত ভোট আছে? এটি কীভাবে বুলিয়ান মান লগ করতে হয় তা নয়, এটি কীভাবে বুলিয়ান মানের উপর নির্ভর করে বিভিন্ন মান লগ করতে হয়।
Acey

7
@ আসি: স্পষ্টতই, লোকেরা (মূল প্রশ্নকারী সহ) আরও বেশি আগ্রহী ছিলেন পরবর্তী উত্তরদাতায়। যদি আমি কোনও অনুমানের ঝুঁকিতে পড়ে যাই, তবে এটি সরাসরি কারণ (0/1) মান প্রিন্ট করা খুব অর্থবহ নয় isn't
বোল্টক্লক

1
লগ আউটপুটে ব্লটক্লক ০/১ অর্থবহ নয়? আমি ভেবেছিলাম আমরা এখানে সমস্ত প্রোগ্রামার
হব

298

%d, 0 মিথ্যা, 1 টি সত্য।

BOOL b; 
NSLog(@"Bool value: %d",b);

অথবা

NSLog(@"bool %s", b ? "true" : "false");

নীচে %@হিসাবে ডেটা টাইপ পরিবর্তনের ভিত্তিতে

For Strings you use %@
For int  you use %i
For float and double you use %f

16

বুলিয়ানগুলি কেবল পূর্ণসংখ্যা ছাড়া কিছুই নয়, এগুলি কেবল কাস্ট করা মানগুলি টাইপ করে ...

typedef signed char     BOOL; 

#define YES (BOOL)1
#define NO (BOOL)0

BOOL value = YES; 
NSLog(@"Bool value: %d",value);

যদি আউটপুট 1 হয়, অন্যথায় হ্যাঁ না


1
না, বুল হয় signed char। আপনার এক্সপ্রেশনটি সম্ভাব্যভাবে ভুল বা মূল্যায়ন করতে পারে যদি 0 বা 1 ব্যতীত অন্য কোনও মান সরবরাহ করা হয়।
কোডাফাই

না, BOOL এর ধরণটি আপনার সংকলক (32 বনাম 64 বিট) এর উপর নির্ভর করে এবং প্রায়শই বুলের মতো হয় না। অন্যদিকে, বুল হল একটি মান, যা স্বীকৃত ধরণের এবং স্বাক্ষরিত চরের মতো নয়।
gnasher729

14

দ্রষ্টব্য যে সুইফটে আপনি ঠিক করতে পারেন

let testBool: Bool = true
NSLog("testBool = %@", testBool.description)

এটি লগ হবে testBool = true


সুইফটে আপনি কেবল ব্যবহার করতে পারেন print()
দিমিত্রি

10

যদিও এটি দেবাংয়ের প্রশ্নের সরাসরি উত্তর নয় তবে আমি বিশ্বাস করি যে নীচের ম্যাক্রো লোকগুলিতে লগ করতে খুঁজছেন তাদের জন্য খুব সহায়ক হতে পারে। এটি বুলের মান লগ আউট করার পাশাপাশি ভেরিয়েবলের নামের সাথে এটি স্বয়ংক্রিয়ভাবে লেবেল করবে।

#define LogBool(BOOLVARIABLE) NSLog(@"%s: %@",#BOOLVARIABLE, BOOLVARIABLE ? @"YES" : @"NO" )

BOOL success = NO;
LogBool(success); // Prints out 'success: NO' to the console

success = YES;
LogBool(success); // Prints out 'success: YES' to the console

একটি কার্যকর ম্যাক্রো, বিশেষত চলক নাম প্রদর্শন করার কৌশল সহ। ব্যক্তিগতভাবে আমি বিভলটি এড়াতে প্যারামিটারের নাম হিসাবে ব্যবহার করব না।
jk7

8

অ্যাপলের ফিক্সটি এটি% hhd সরবরাহ করেছে, যা আমাকে সঠিকভাবে আমার BOOL এর মান দিয়েছে।


4

আমরা চারটি উপায়ে চেক করতে পারি

প্রথম উপায়

BOOL flagWayOne = TRUE; 
NSLog(@"The flagWayOne result is - %@",flagWayOne ? @"TRUE":@"FALSE");

দ্বিতীয় উপায় হয়

BOOL flagWayTwo = YES; 
NSLog(@"The flagWayTwo result is - %@",flagWayTwo ? @"YES":@"NO");

তৃতীয় উপায়

BOOL flagWayThree = 1;
NSLog(@"The flagWayThree result is - %d",flagWayThree ? 1:0);

চতুর্থ উপায়

BOOL flagWayFour = FALSE; // You can set YES or NO here.Because TRUE = YES,FALSE = NO and also 1 is equal to YES,TRUE and 0 is equal to FALSE,NO whatever you want set here.
NSLog(@"The flagWayFour result is - %s",flagWayFour ? YES:NO);

2
NSArray *array1 = [NSArray arrayWithObjects:@"todd1", @"todd2", @"todd3", nil];
bool objectMembership = [array1 containsObject:@"todd1"];
NSLog(@"%d",objectMembership);  // prints 1 or 0

2

সুইফট, আপনি কেবল একটি বুলিয়ান মান মুদ্রণ করতে পারেন এবং এটি হিসেবে প্রদর্শিত হবে trueবা false

let flag = true
print(flag) //true

1

আপনি এটি কীভাবে করতে পারেন তা এখানে:

BOOL flag = NO;
NSLog(flag ? @"YES" : @"NO");

এটি মূলত চার বছর আগে থেকে @ बोलটকলকের উত্তরের পুনরাবৃত্তি।
jk7

0
//assuming b is BOOL. ternary operator helps us in any language.
NSLog(@"result is :%@",((b==YES)?@"YES":@"NO"));

(খ == হ্যাঁ) ঠিক খ হিসাবে সমান। : তালিকাভুক্ত হিসাবে, আপনি কম্পাইলার এর অপটিমাইজার উপর নির্ভর করছে এটা (? @ "কোন" বি @ "হ্যাঁ") নিচে ব্যাক কমাতে
করুন Armand
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.