ตัวอย่างที่ 1:
ไฟล์ส่วนหัว 'เป็นทางเลือก' และ 'iostream' จะถูกนำเข้าในโค้ดนี้ เราต้องนำเข้าไฟล์ส่วนหัวเหล่านี้เพื่อให้เราสามารถเข้าถึงฟังก์ชันที่กำหนดไว้ได้อย่างง่ายดาย หลังจากนี้ เราจะรวม 'namespace std' ไว้ด้วย เพื่อที่เราจะได้ไม่ต้องพิมพ์ด้วยฟังก์ชันแยกกัน เช่น 'std::เป็นทางเลือก' และ 'std::cout' เราใช้ “namespace std” ที่นี่ ตอนนี้เราวาง 'ทางเลือก' หรือ 'cout' โดยไม่ต้องพิมพ์ 'std' ไปด้วย
จากนั้นเราเรียกใช้ main() และวาง “ทางเลือก” และตั้งค่าเป็น “int” และประกาศ “myNum” เป็นไวยากรณ์สำหรับการประกาศตัวแปร “std::เป็นทางเลือก” จากนั้น เราจะเริ่มต้นตัวแปรอีกตัวหนึ่งชื่อ “value” และกำหนดค่าให้กับตัวแปร “myNum” โดยใช้ฟังก์ชัน value_or() เราส่งค่า '99' ในฟังก์ชันนี้ ดังนั้นจึงกำหนด '99' นี้ให้กับตัวแปร 'muNum' หากไม่มีค่าอยู่ และจัดเก็บไว้ในตัวแปร 'value' จากนั้นเราวาง “cout” ไว้ใต้สิ่งนี้ ซึ่งช่วยในการแสดงค่าที่เรากำหนดให้กับตัวแปรที่อยู่ด้านบน
รหัส 1:
#รวม <ตัวเลือกเสริม>#รวม
ใช้เนมสเปซมาตรฐาน -
ภายใน หลัก - - -
ไม่จำเป็น - ภายใน - myNum -
ภายใน ค่า - myNum. ค่า_หรือ - 99 - -
ศาล - 'ค่าของ myNum คือ: ' - ค่า - สิ้นสุด -
กลับ 0 -
-
เอาท์พุท:
ที่นี่เราจะสังเกตได้ว่ามีการแสดง '99' ซึ่งหมายความว่าไม่มีค่าอยู่ด้านบน และค่าที่เราเพิ่มไว้ถูกกำหนดให้กับตัวแปรนั้น
ตัวอย่างที่ 2:
ก่อนอื่นเราจะรวมไฟล์ส่วนหัวและวาง 'namespace std' ด้านล่างนี้ เราประกาศฟังก์ชัน “std::เป็นทางเลือก” ซึ่งก็คือ “divideFunc()” “เงินปันผล” และ “ตัวหาร” เป็นพารามิเตอร์สองตัวของฟังก์ชันนี้ จากนั้นเราใช้ 'if' ด้านล่าง โดยที่เราเพิ่มเงื่อนไขที่ระบุว่า 'ตัวหาร != 0' หากเป็นที่พอใจ ก็จะส่งกลับคำตอบของส่วนนี้เมื่อเราเพิ่ม 'return' เข้าไปภายในส่วนนี้ มิฉะนั้นจะส่งคืนค่า 'nullopt' ซึ่งหมายถึงไม่มีค่าประเภทที่ปลอดภัย ตอนนี้เราเรียกใช้ main() หากต้องการอนุมานถึง “std::ทางเลือก” เราจะวาง “divideFunc()” และเพิ่ม “27, 3” ลงไป และกำหนดผลลัพธ์ให้กับตัวแปร “ผลหาร”
ที่นี่เราใช้คำหลัก 'อัตโนมัติ' เพื่อปรับประเภทข้อมูลโดยอัตโนมัติ หลังจากนี้ เราจะเพิ่ม 'if' โดยที่เราใช้ 'has-value' ซึ่งจะกำหนดว่าจะได้รับค่าประเภทหรือไม่ จากนั้น เราวาง 'cout' ซึ่งแสดงผลลัพธ์ที่เก็บไว้ในตัวแปร 'ผลหาร' และส่วน 'else' มีคำสั่งที่แสดงว่าตัวหารเป็นศูนย์
รหัส 2:
#รวม#รวม <ตัวเลือกเสริม>
ใช้เนมสเปซมาตรฐาน -
ไม่จำเป็น - ภายใน - ฟังก์ชันหาร - ภายใน เงินปันผล - ภายใน ตัวแบ่ง - -
ถ้า - ตัวแบ่ง - 0 - -
กลับ เงินปันผล - ตัวแบ่ง -
-
กลับ ไม่มีค่า -
-
ภายใน หลัก - - -
อัตโนมัติ ความฉลาดทาง - ฟังก์ชันหาร - 27 - 3 - -
ถ้า - ความฉลาดทาง มี_ค่า - - - -
ศาล - 'ผลเชาวน์คือ:' - ความฉลาดทาง ค่า - - - สิ้นสุด -
- อื่น -
ศาล - 'ตัวหารเป็นศูนย์ที่นี่' - สิ้นสุด -
-
กลับ 0 -
-
เอาท์พุท:
ผลลัพธ์จะแสดงผลลัพธ์หลังการหารซึ่งหมายความว่าตัวหารไม่เป็นศูนย์ ในกรณีนี้ จะใช้ “std::เป็นทางเลือก” เพื่อพิจารณาว่ามีค่าอยู่หรือไม่พิมพ์อย่างปลอดภัย
ตัวอย่างที่ 3:
ที่นี่เรากำลังประกาศตัวแปร “std::ทางเลือก” ซึ่งเป็น “ตัวเลข” ภายใน main() จากนั้น เราใช้ 'if' โดยวางฟังก์ชัน has_value() ไว้กับตัวแปร 'number' นี้ วิธีนี้จะตรวจสอบว่ามีค่าอยู่ในตัวแปร 'ตัวเลข' นี้หรือไม่ หากตัวแปร “number” มีค่าอยู่ มันจะแสดงผลคำสั่งที่เราเพิ่มไว้หลัง “if” มิฉะนั้นจะแสดงข้อความที่เราวางไว้หลัง 'else'
ตอนนี้ เราเริ่มต้น 'number' ด้วย '92' และใช้ 'if' อีกครั้งข้างใต้นี้ โดยที่ฟังก์ชัน has_value() ถูกเพิ่มด้วยตัวแปร 'number' ใน 'if as the Condition' สิ่งนี้จะกำหนดว่าตัวแปร 'ตัวเลข' มีค่าหรือไม่ ประโยคที่เราเพิ่มหลัง 'if' จะแสดงผลหากตัวแปร 'number' มีค่า ถ้าไม่เช่นนั้น ข้อความที่เราวางไว้หลัง 'else' จะถูกแสดงผล
รหัส 3:
#รวม#รวม <ตัวเลือกเสริม>
ภายใน หลัก - - -
มาตรฐาน - ไม่จำเป็น - ภายใน - ตัวเลข -
ถ้า - ตัวเลข. มี_ค่า - - - -
มาตรฐาน - ศาล - 'มีหมายเลขอยู่:' - ตัวเลข. ค่า - - - มาตรฐาน - สิ้นสุด -
- อื่น -
มาตรฐาน - ศาล - 'หมายเลขไม่ปรากฏ' - มาตรฐาน - สิ้นสุด -
-
ตัวเลข - 92 -
ถ้า - ตัวเลข. มี_ค่า - - - -
มาตรฐาน - ศาล - 'มีหมายเลขอยู่:' - ตัวเลข. ค่า - - - มาตรฐาน - สิ้นสุด -
- อื่น -
มาตรฐาน - ศาล - 'หมายเลขไม่ปรากฏ' - มาตรฐาน - สิ้นสุด -
-
กลับ 0 -
-
เอาท์พุท:
วิธีนี้จะแสดงผลส่วน “else” ก่อน เนื่องจากเราไม่ได้กำหนดค่าใดๆ ให้กับตัวแปร “std::option” จากนั้นเรากำหนดค่าให้กับตัวแปรนี้เพื่อแสดงค่านั้นในบรรทัดถัดไป
ตัวอย่างที่ 4:
ตอนนี้เราประกาศตัวแปร “std::ทางเลือก” สามตัว ได้แก่ “n1”, “n2” และ “n3” นอกจากนี้เรายังกำหนดค่าให้กับตัวแปร 'n2' และ 'n3' ซึ่งก็คือ '29' และ '45' ตามลำดับ ตัวแปร “n1” ของคลาส “std::เป็นทางเลือก” ว่างเปล่าที่นี่ ตอนนี้เราใช้ 'boolalpha' ซึ่งช่วยในการส่งคืนผลตอบแทนในรูปแบบ 'จริง' หรือ 'เท็จ' แทนที่จะเป็น '1' และ '0'
หลังจากนี้ เราใช้ตัวดำเนินการเชิงสัมพันธ์ระหว่างตัวแปร “std::ทางเลือก” เหล่านี้ และวางแต่ละคำสั่งไว้ใน “cout” ดังนั้นมันจะแสดงผลผลลัพธ์ของการเปรียบเทียบที่เราเพิ่มเข้าไปด้วย ขั้นแรก ให้ตรวจสอบว่า “n3 > n2” จากนั้น “n3 < n2”, “n1 < n2”, “n1 == std::nullopt ” ในที่นี้ “nullopt” ใช้เพื่อเปรียบเทียบค่าที่ไม่มีประเภทปลอดภัยหรือค่าว่าง จากนั้น เราจะตรวจสอบ “n2 == 49” และ “n3 == 88” ภายในคำสั่ง “cout” แยกกัน
รหัส 4:
#รวม <ตัวเลือกเสริม>#รวม
ภายใน หลัก - -
-
มาตรฐาน - ไม่จำเป็น - ภายใน - n1 -
มาตรฐาน - ไม่จำเป็น - ภายใน - n2 - 29 - -
มาตรฐาน - ไม่จำเป็น - ภายใน - n3 - สี่ห้า - -
มาตรฐาน - ศาล - มาตรฐาน - ตัวอักษรและตัวเลข -
มาตรฐาน - ศาล - 'n3 > n2' - - n3 - n2 - - มาตรฐาน - สิ้นสุด -
มาตรฐาน - ศาล - 'n3 < n2' - - n3 - n2 - - มาตรฐาน - สิ้นสุด -
มาตรฐาน - ศาล - 'เอ็น1 <เอ็น2' - - n1 - n2 - - มาตรฐาน - สิ้นสุด -
มาตรฐาน - ศาล - 'n1 == เป็นโมฆะ' - - n1 - มาตรฐาน - ไม่มีค่า - - มาตรฐาน - สิ้นสุด -
มาตรฐาน - ศาล - 'n2 == 49' - - n2 - 29 - - มาตรฐาน - สิ้นสุด -
มาตรฐาน - ศาล - 'n3 == 88' - - n3 - 88 - - มาตรฐาน - สิ้นสุด -
-
เอาท์พุท:
โปรแกรม C++ ที่เรากล่าวถึงก่อนหน้านี้จะเปรียบเทียบค่าตัวแปรต่างๆ ของประเภท “std::เป็นทางเลือก” ในขณะที่พิมพ์ผลลัพธ์ไปยังเอาต์พุตไปพร้อมๆ กัน
ตัวอย่างที่ 5:
ไฟล์ส่วนหัวที่รวมอยู่ในโค้ดนี้คือ 'iostream', 'fstream', 'เป็นทางเลือก' และ 'string' “fstream” มีคำจำกัดความของทั้งสองฟังก์ชันคือ “ofstream” และ “ifstream” ที่เราต้องการในโค้ดนี้ ตอนนี้ เราได้รวม 'เนมสเปซ std' ไว้แล้ว ดังนั้นเราจึงไม่แยกมันออกจากกันในแต่ละฟังก์ชัน จากนั้น เราใช้ “std:เป็นทางเลือก” และประกาศฟังก์ชันที่มีชื่อ “ReadFileFunc” ซึ่งเราจะส่งผ่าน “const string& f_Name” เป็นอาร์กิวเมนต์
จากนั้น เรามี 'ifstream' ที่ช่วยในการอ่านไฟล์ที่จะเพิ่มชื่อลงในตัวแปร 'f_name' จากนั้น เราใช้ 'if' โดยที่เรารวมเงื่อนไขที่ระบุว่าหากไฟล์ไม่ได้เปิดขึ้น ไฟล์จะส่งคืน 'nullopt' ตามที่เราเพิ่มไว้ด้านล่างคำสั่ง 'if' จากนั้นเราสร้างฟังก์ชันอื่นขึ้นมาซึ่งก็คือ “fileContent” ที่ช่วยในการเขียนเนื้อหาลงในไฟล์หากไฟล์ถูกเปิด ที่นี่ เราวาง 'return fileContent' อีกครั้ง ซึ่งจะส่งคืนเนื้อหาที่เราเพิ่มลงในไฟล์หลังจากเปิดด้วย
ตอนนี้เราเรียก 'main()' ที่นี่ซึ่งเราจะเริ่มต้นตัวแปร 'f_Name' ด้วยชื่อไฟล์ 'Sample.txt' ที่เราต้องการเปิด จากนั้นเราเรียก 'ReadFileFunc()' ที่นี่และส่งตัวแปร 'f_Name' ในฟังก์ชันนี้ซึ่งจะพยายามอ่านไฟล์และจัดเก็บเนื้อหาไว้ในตัวแปร 'f_content' ด้านล่างนี้ เราใช้ 'has_value()' กับตัวแปร 'f_content' ใน 'if' หากตัวแปรนี้มีค่า มันจะเรนเดอร์เมื่อเราเพิ่ม “cout” ใต้ “if” ซึ่งเราได้วาง “f_content” ไว้ด้วย มิฉะนั้นจะแสดงข้อผิดพลาดที่เราเพิ่มไว้หลัง 'else'
รหัส 5:
#รวม#รวม
#รวม <ตัวเลือกเสริม>
#รวม
ใช้เนมสเปซมาตรฐาน -
ไม่จำเป็น - เชือก - อ่าน FileFunc - ค่าคงที่ เชือก - ฉ_ชื่อ - -
ถ้าสตรีม myFile - ฉ_ชื่อ - -
ถ้า - - myFile. เปิด - - - -
กลับ ไม่มีค่า -
-
เนื้อหาไฟล์สตริง - - isstreambuf_iterator - ถ่าน - - myFile - - - isstreambuf_iterator - ถ่าน - - - - -
กลับ ไฟล์เนื้อหา -
-
ภายใน หลัก - - -
ค่าคงที่ สตริง f_Name - 'ตัวอย่าง.txt' -
อัตโนมัติ f_content - อ่าน FileFunc - ฉ_ชื่อ - -
ถ้า - f_content. มี_ค่า - - - -
ศาล - “เนื้อหาของไฟล์คือ: \n - - f_content. ค่า - - - สิ้นสุด -
- อื่น -
เซอร์ - 'ข้อผิดพลาด: ไฟล์ไม่ได้เปิดที่นี่' - ฉ_ชื่อ - สิ้นสุด -
-
กลับ 0 -
-
เอาท์พุท:
ที่นี่จะแสดงข้อความแสดงข้อผิดพลาดที่เราเพิ่มไว้ในส่วน 'else' ซึ่งเป็นผลลัพธ์ของโค้ดที่กำหนด
บทสรุป
ในบทช่วยสอนนี้ เราได้สำรวจฟีเจอร์ C++ ที่แข็งแกร่งซึ่งก็คือ “std::เป็นทางเลือก” และอธิบายว่าฟีเจอร์นี้นำเสนอวิธีการมาตรฐานในการแสดงค่าเผื่อเลือก โดยขจัดข้อกำหนดสำหรับการอ้างอิงที่เป็นค่าว่าง และปรับปรุงความชัดเจนและความปลอดภัยของโค้ด เราได้เรียนรู้ว่ายังปรับปรุงความสามารถในการอธิบายปัญหาที่ซับซ้อนและจัดการกับข้อผิดพลาดอย่างสุภาพอีกด้วย