ตามที่ทุกคนกล่าวถึงมันเป็น "เครื่องหมาย" กำลังมองหาไวยากรณ์ของทับทิมเป็นไปไม่ได้และฉันได้ถามคำถามนี้กับคำถามอื่น คำตอบสำหรับส่วนนั้นของคำถามคือคุณค้นหา
asterisk in ruby syntax
ใน Google Google อยู่ตรงนั้นเพื่อคุณเพียงแค่ใส่คำที่คุณเห็น
Anyhoo เช่นรหัส Ruby จำนวนมากรหัสนั้นค่อนข้างหนาแน่น
line.split(/=|;/)
first_name, mickey, last_name, mouse, country, usa
ทำให้อาร์เรย์ขององค์ประกอบหกแล้ว จากนั้นใช้เครื่องหมายเสียงเพื่อทำให้เป็นแฮช ตอนนี้คน Ruby จะส่งคุณไปดูวิธี Splat เสมอเนื่องจากทุกอย่างจะแสดงใน Ruby ฉันไม่รู้ว่ามันอยู่ที่ไหน แต่เมื่อคุณมีแล้วคุณจะเห็นว่ามันทำงานfor
ผ่านอาร์เรย์และสร้างแฮช
คุณจะมองหารหัสในเอกสารหลัก หากคุณหาไม่เจอ (ฉันหาไม่ได้) คุณจะลองเขียนโค้ดแบบนี้ (ใช้งานได้ แต่ไม่ใช่โค้ดที่คล้าย Ruby):
line = "first_name=mickey;last_name=mouse;country=usa"
presplat = line.split(/=|;/)
splat = Hash.new
for i in (0..presplat.length-1)
splat[presplat[i]] = presplat[i+1] if i%2==0
end
puts splat["first_name"]
จากนั้นแก๊งทับทิมจะสามารถบอกคุณได้ว่าทำไมโค้ดของคุณถึงโง่เง่าไม่ดีหรือผิดธรรมดา
หากคุณอ่านมาไกลให้อ่านเอกสารHashเพื่อเริ่มต้น
โดยพื้นฐานแล้วแฮชที่เริ่มต้นด้วยอาร์กิวเมนต์หลายตัวสร้างเป็นคู่ของค่าคีย์:
Hash["a", 100, "b", 200] #=> {"a"=>100, "b"=>200}
ดังนั้นในตัวอย่างของคุณสิ่งนี้จะนำไปสู่การแฮชต่อไปนี้:
{"first_name"=>"mickey", "last_name"=>"mouse", "county"=>"usa"}
a,b,*c = d,e,f,*g
ตั้งค่า a = d, b = e, และ c = [f, g0, g1, g2, ... , gn], โดยที่ g = [g0, g1, g2, ... , gn]