ความแตกต่างระหว่างสตริงที่ยกมาเดี่ยวและสองครั้งคืออะไร?
มีวิธีการรับตัวแปรขยายภายในสตริงหรือไม่พวกเขาจำเป็นต้องเข้าร่วมเช่น: 'Hello, ' . s:name . '!'
ความแตกต่างระหว่างสตริงที่ยกมาเดี่ยวและสองครั้งคืออะไร?
มีวิธีการรับตัวแปรขยายภายในสตริงหรือไม่พวกเขาจำเป็นต้องเข้าร่วมเช่น: 'Hello, ' . s:name . '!'
คำตอบ:
ความแตกต่างเพียงอย่างเดียวระหว่างสตริงที่ยกมาเดี่ยวและสองที่เกี่ยวข้องกับเครื่องหมายทับขวา การแสดงตัวอักษรพิเศษเช่นการขึ้นบรรทัดใหม่, ระฆัง, แท็บ ฯลฯ คุณจะต้องใช้ราคาสองครั้ง "\n"
->
ภายในสตริงที่มีเครื่องหมายคำพูดเดี่ยว'\'
คือตัวเอง => '\n'
เป็นสตริงสองอักขระ (เครื่องหมายแบ็กสแลช + n
) ภายในเครื่องหมายคำพูดคู่คุณต้องเพิ่มเป็นสองเท่า -> "\\"
ซึ่งทำให้ไม่สามารถกำหนด regexes ได้
เกี่ยวกับการขยายสตริงคุณมีตัวเลือกน้อย:
'Hello, ' . s:name . '!'
join(['Hello, ', s:name, '!'], '')
- ซึ่งเราไม่เคยใช้printf('Hello %s!', s:name)
lh#fmt#printf('Hello %1!', s:name)
- จาก lh-vim-lib เมื่อเราไม่ต้องการทราบเกี่ยวกับประเภทและเมื่อเราไม่ต้องการจัดรูปแบบฟิลด์ แต่เมื่อเราต้องการใช้รูปแบบเช่น: 'Hello %1. How are you doing %1 this %2
''foo''bar'
หรือใช้ทั้งสองชนิดของคำพูด:'foo'."'".'bar'
'
ไว้ในสตริงที่มีเครื่องหมายคำพูดเดี่ยว?