Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

วิธีใช้ Ruby Gets &Ruby Chomp Methods

คุณกำลังเขียนโปรแกรม Ruby และต้องการถามคำถามกับผู้ใช้…

คุณทำอย่างนั้นได้อย่างไร

คุณสามารถใช้ Ruby gets วิธีการอ่านอินพุตของผู้ใช้

คุณสามารถโทร gets .

จากนั้นโปรแกรมของคุณจะเริ่มรอให้คุณพิมพ์บางอย่างด้วยแป้นพิมพ์และกดปุ่ม Enter

ผลลัพธ์?

คุณได้สตริงกลับมา

สตริงนี้มีเนื้อหาที่คุณ (หรือผู้ใช้) พิมพ์ ดังนั้นหากคุณกำหนดสตริงนี้ให้กับตัวแปร คุณจะสามารถใช้งานได้

ตัวอย่างทั่วไปคือโปรแกรมทักทาย

หน้าตาเป็นแบบนี้ :

name = gets.chomp

puts "Hello #{name}, nice to meet you!"

#{name} สิ่งที่เรียกว่าการแก้ไขสตริง

ลองทำสิ่งนี้และดูด้วยตัวคุณเองว่ามันทำงานอย่างไร

  • ขั้นแรก บันทึกโค้ดนี้ลงในไฟล์ "greeting.rb"
  • จากนั้น ใช้กับ “ruby greeting.rb” (จากโปรแกรมเทอร์มินัล)

ใส่ชื่อของคุณและโปรแกรมของคุณจะทักทายคุณ!

เจ๋งมาก

ตอนนี้ :

นี่คืออะไร chomp เกี่ยวกับธุรกิจ?

เป็นวิธีการ Ruby ที่เปลี่ยนผลลัพธ์ของ gets ด้วยวิธีที่เฉพาะเจาะจงมาก

ลองลบออก

รวมจุด (. ) ก่อนหน้านั้นจึงกลายเป็น name = gets แทนที่จะ name = gets.chomp .

หากคุณบันทึกรหัสและเรียกใช้อีกครั้ง…

คุณจะเห็นว่าคำทักทายของคุณถูกแบ่งออกเป็นสองบรรทัด แทนที่จะเป็นคำทักทายทั้งหมดจะอยู่ในบรรทัดเดียว

เป็นอย่างไรบ้าง

เข้าไปดูรายละเอียดกันเลย!

ทำความเข้าใจการขึ้นบรรทัดใหม่และอักขระพิเศษ

Ruby อ่านทุกสิ่งที่คุณพิมพ์ลงในโปรแกรมในขณะที่ get เมธอดทำงานอยู่

สำหรับ โปรแกรมทักทาย . ของเรา ซึ่งรวมถึงชื่อของคุณด้วย

และอักขระพิเศษ “ขึ้นบรรทัดใหม่” ที่ทำให้ข้อความทักทายแบ่งเป็นสองบรรทัด!

พบกับตัวละครขึ้นบรรทัดใหม่ :

\n

โดยปกติแล้ว อักขระพิเศษประเภทนี้จะมองไม่เห็นและปรากฏเฉพาะในรูปแบบของการขึ้นบรรทัดใหม่ การเว้นวรรค สี ฯลฯ

หากคุณต้องการเห็นพวกเขา คุณต้องมีไฟฉายวิเศษในราคา $10,000

ล้อเล่นนะ!

สิ่งที่คุณต้องมีคือ p วิธีการหรือ inspect วิธีการ

ตัวอย่างการใช้งาน :

p name
# "Jesus\n"

มาแล้วจ้า!

อักขระ "บรรทัดใหม่" ของเรา (\n )

สิ่งนี้ทำให้เรากลับมาที่คำถามเดิมของเรา…

chompคืออะไร เกี่ยวกับ?

จุดประสงค์ของ chomp คือการลบอักขระขึ้นบรรทัดใหม่ที่ท้ายสตริง

อย่างที่คุณเห็น มันมีประโยชน์มาก!

ตัวอย่างอื่น

การมีอักขระขึ้นบรรทัดใหม่นี้ หรืออักขระพิเศษอื่นๆ จะส่งผลต่อสิ่งต่างๆ มากกว่ารูปลักษณ์ของสตริงเมื่อคุณพิมพ์

นอกจากนี้ยังสามารถส่งผลต่อคำสั่ง if ของคุณด้วย!

ตัวอย่าง :

name = gets

if name == "David"
  puts "Hello David, we were expecting you!"
end

ในโค้ดนี้ หากคุณไม่ใช้ chomp ด้วย gets ทั้งสองสตริงจะไม่เหมือนกันเนื่องจากอักขระขึ้นบรรทัดใหม่ (\n ) ดังนั้นค่านี้จะประเมินเป็น false .

ขะ…

นอกจากนี้ยังใช้กับสตริงที่คุณได้รับนอก gets เช่น ข้อมูลที่คุณได้รับจากการอ่านฐานข้อมูล ไฟล์ หรือแหล่งอื่นๆ

จับตาดูตัวละครพิเศษเหล่านี้ให้ดี!

ชม vs สับ vs สตริป

อีกสองวิธีที่คุณอาจพบว่ามีประโยชน์ในการล้างข้อมูลของผู้ใช้คือ chop &strip .

ด้วย strip คุณสามารถลบช่องว่าง

ตัวอย่าง :

"    John Smith    ".strip

ด้วย chop คุณจะลบอักขระตัวสุดท้ายออกเสมอ

การลบตัวละครตัวแรก

อีกอย่างที่คุณอาจต้องการก็คือการลบอักขระออกจากจุดเริ่มต้น

ทำแบบนี้ก็ได้ :

str = "Mr. John"

str[0..3] = ""

str
# "John"

การดำเนินการนี้จะลบอักขระสี่ตัวแรก

สองได้รับวิธีการ? เนื้อเรื่องเข้มข้น!

มีกรณีพิเศษ…

คุณจะต้องใช้ $stdin.gets แทนที่จะแค่ gets .

หากคุณได้รับข้อผิดพลาดเช่นนี้ :

`gets': No such file or directory @ rb_sysopen

ทำไม?

เนื่องจากมี gets . สองเวอร์ชัน วิธีการ

  • เวอร์ชันเริ่มต้นพยายามอ่านชื่อไฟล์
  • เวอร์ชันทางเลือก ($stdin.gets ) อ่านจากการป้อนข้อมูลของผู้ใช้เสมอ

ตอนนี้ คุณก็รู้ หากคุณเห็นข้อผิดพลาดเช่นนั้นขณะใช้ gets ลองเปลี่ยนเป็น $stdin.gets .

สรุป

คุณได้เรียนรู้เกี่ยวกับวิธีการ get &chomp สิ่งที่พวกเขาทำ วิธีการทำงาน และเหตุใดจึงมีประโยชน์!

เรียนรู้ต่อไปด้วยบทแนะนำ Ruby

ขอบคุณที่อ่าน! 🙂