อะไรคือความแตกต่าง?
อะไรคือความแตกต่าง?
คำตอบ:
% น้ำหนักคำพูดเช่นราคาเดียว''
(ไม่มีการแก้ไขตัวแปรน้อยลำดับหนี) ในขณะ% W ""
คำพูดเช่นคำพูดคู่
irb(main):001:0> foo="hello"
=> "hello"
irb(main):002:0> %W(foo bar baz #{foo})
=> ["foo", "bar", "baz", "hello"]
irb(main):003:0> %w(foo bar baz #{foo})
=> ["foo", "bar", "baz", "\#{foo}"]
#
กัน '#{foo}'
และ"\#{foo}"
ให้คุณสายเดียวกันซึ่งคุณสามารถตรวจสอบกับใน'#{foo}' == "\#{foo}"
irb
แอปพลิเคชันที่ฉันพบสำหรับ% W เทียบกับ% w:
greetings = %W(hi hello #{"how do you do"})
# => ["hi", "hello", "how do you do"]
greetings = %w(hi hello how\ do\ you\ do)
% W ดำเนินการแทนอัญประกาศแบบปกติ % w ไม่ได้
แม้ว่าจะมีการโพสต์เก่าคำถามยังคงเกิดขึ้นและคำตอบก็ไม่ชัดเจนสำหรับฉัน ดังนั้นนี่คือความคิดของฉัน
W% และ% W เป็นตัวอย่างของการป้อนข้อมูลทั่วไปคั่นประเภทที่เกี่ยวข้องกับอาร์เรย์ มีประเภทอื่น ๆ ที่รวมถึง% q,% Q,% r,% x และ% i
ความแตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็กคือมันทำให้เราสามารถเข้าถึงคุณลักษณะของเครื่องหมายคำพูดเดี่ยวและคู่ได้ ด้วยเครื่องหมายคำพูดเดี่ยวและตัวพิมพ์เล็ก% w เราไม่มีการแก้ไขโค้ด (เช่น # {someCode}) และช่วงอักขระ จำกัด การหลบหนีที่ใช้งานได้ (เช่น \, \ n) ด้วยเครื่องหมายคำพูดคู่และตัวพิมพ์ใหญ่% W ที่เราทำสามารถเข้าถึงคุณลักษณะเหล่านี้
ตัวคั่นที่ใช้สามารถเป็นอักขระใด ๆ ไม่ใช่แค่วงเล็บเปิด เล่นกับตัวอย่างด้านบนเพื่อดูว่ามีผล
สำหรับการเขียนแบบเต็มโดยมีตัวอย่างของ% w และรายการแบบเต็มให้ใช้อักขระยกเว้นและตัวคั่น - ดูที่: http://cyreath.blogspot.com/2014/05/ruby-w-vs-w-secrets-revealed .html
เครื่องหมาย
%w&readable af&
เอกสารสำหรับร้อยละ Strings: http://ruby-doc.org/core-2.2.0/doc/syntax/literals_rdoc.html#label-Percent+Strings
%W
ใช้สำหรับองค์ประกอบอาร์เรย์%Q
สองตัวเช่น
foo = "!"
%W{hello world #{foo}} # => ["hello", "world", "!"]
%w
%q
ถูกนำมาใช้สำหรับองค์ประกอบอาร์เรย์เดียวที่ยกมาเช่น
%w(hello world #{foo})
# => ["hello","world", "\#{foo}"]
array = %w(a b c d)
เหมือนกับ
array = ["a", "b", "c", "d"]
%w
เป็นสัญลักษณ์ทางลัดสำหรับเครื่องหมายคำพูดของสตริง!