PowerShell:
การแทรกค่าลงในสตริง
วิธีการ:
ใน PowerShell, คุณสามารถใช้การอินเตอร์โพเลทด้วยสตริงที่มีเครื่องหมายคำพูดคู่และสัญลักษณ์ $
ก่อนชื่อตัวแปร ห่อนิพจน์ด้วย $()
เพื่อประเมินค่าภายในสตริงทันที
$name = "Alex"
$day = (Get-Date).DayOfWeek
# การแทรกตัวแปรพื้นฐาน
"Hello, $name! Happy $day!"
# การแทรกนิพจน์
"Pi to two decimal places is $(Math::Round([Math]::Pi, 2))"
# ผลลัพธ์
Hello, Alex! Happy Wednesday!
Pi to two decimal places is 3.14
ลงลึก
PowerShell ได้นำการอินเตอร์โพเลทสตริงมาใช้โดยยืมแนวคิดมาจากภาษาโปรแกรมที่มีมาก่อนอย่าง Perl ก่อน PowerShell เวอร์ชั่น 3, เราใช้ตัวดำเนินการ +
สำหรับการต่อสตริงหรือใช้ตัวดำเนินการรูปแบบ -f
นี่คือวิวัฒนาการ:
- การต่อสตริงแบบเก่า:
"Hello, " + $name + "! It's " + $day + "."
- ตัวดำเนินการรูปแบบ:
"Hello, {0}! It's {1}." -f $name, $day
สตริงที่ถูกอินเตอร์โพเลทง่ายต่อการอ่านและมีโอกาสผิดพลาดน้อยลง ในเบื้องหลัง, PowerShell ตีความสตริงที่ถูกอินเตอร์โพเลทและแทนที่ตัวแปรหรือนิพจน์ด้วยค่าของมันเมื่อสตริงถูกประเมินค่า ไม่ใช่ตอนที่ถูกกำหนด