เมื่อคุณเขียนโค้ด Go คุณจะพบว่าการจัดรูปแบบสตริงมีประโยชน์มากในหลาย ๆ สถานการณ์ คุณอาจกำลังแยกวิเคราะห์อินพุตหรือสร้างเอาต์พุตที่ซับซ้อนกว่าการต่อข้อมูลแบบธรรมดา คุณอาจกำลังทำงานกับประเภทอื่นที่ไม่ใช่สตริงธรรมดา
การจัดรูปแบบสตริงใน Go ใช้กระบวนการและไวยากรณ์ที่คุ้นเคยของฟังก์ชัน printf ซึ่งภาษาจาก Java ถึง Haskell ก็ใช้เช่นกัน
Go มีวิธีการต่างๆ สำหรับการจัดรูปแบบสตริงในไฟล์ fmt บรรจุุภัณฑ์. คุณสามารถใช้ฟังก์ชันและกริยาสำหรับการจัดรูปแบบสตริงได้ ขึ้นอยู่กับการดำเนินการหรืออินพุตที่คุณต้องการจัดรูปแบบ
การจัดรูปแบบสตริงใน Go
ฟังก์ชั่นในแพ็คเกจ fmt นั้นคล้ายกับคู่กันเช่น ฟังก์ชัน printf ใน bash หรือ C. Go มาจากกริยาการจัดรูปแบบจาก C.
คุณใช้ กริยารูปแบบสตริง เป็นตัวยึดตำแหน่งสำหรับค่าตัวแปรของคุณในสตริงที่มี จากนั้นคุณสามารถส่งสตริงการจัดรูปแบบนั้นไปยังฟังก์ชันเช่น Printf พร้อมด้วยค่าที่สอดคล้องกับตัวยึดตำแหน่งเหล่านั้น
คุณไม่สามารถใช้กริยาการจัดรูปแบบสตริงกับ พิมพ์ และ Println วิธีการ คุณสามารถใช้พวกเขาด้วยวิธีการเช่น Printf และ Sprintf .
fmt.Println("This is a test %v", 90)
fmt.Printf("This is a test %v", 90)
ดิ %ใน กริยาพิมพ์ค่าใด ๆ ในรูปแบบเริ่มต้น ดิ Println เมธอดไม่รู้จักคำกริยาและพิมพ์อาร์กิวเมนต์ที่ได้รับ ดิ Printf และ Sprintf ทำหน้าที่จัดรูปแบบอาร์กิวเมนต์สตริงแรกที่คุณส่งผ่านไปยังอาร์กิวเมนต์
ฟังก์ชันการจัดรูปแบบสตริงใน fmt Package
การจัดรูปแบบสตริงใน ภาษาโปรแกรม Go คุณต้องใช้ฟังก์ชันการจัดรูปแบบสตริงและกริยา ฟังก์ชันจะส่งกลับสตริงที่จัดรูปแบบ และกริยาเป็นตัวยึดตำแหน่งสำหรับอินพุตของสตริง
ดิ Printf วิธีจัดรูปแบบอินพุตตามตัวระบุรูปแบบและส่งคืนจำนวนไบต์ที่เขียนหรือข้อผิดพลาด
เปลี่ยนแบต macbook air เท่าไหร่ครับ
fmt.Printf("This is a test %v", 90)
ตามอัตภาพ คุณจะไม่ต้องกังวลกับข้อผิดพลาดเมื่อคุณใช้ Printf กระบวนการ.
ดิ Sprintf รูปแบบเมธอดตามรูปแบบที่ระบุและส่งกลับผลลัพธ์เป็นสตริง
var result = fmt.Sprintf("This is a test %v", 90)
ดิ Fprintf เมธอดจัดรูปแบบสตริงและเขียนไปยังตัวเขียน (เมธอดที่ใช้ io.นักเขียน อินเตอร์เฟซ)
// write data to standard output
result, err = fmt.Fprintf(writer, "This is a test %v", 90)
ดิ Fscanf วิธีการสแกนจากเครื่องอ่านและรูปแบบตามรูปแบบที่ระบุ
var take string
// read data from the given string
readString := strings.NewReader("This is a test")
read, err := fmt.Fscanf(reader, "%v", &take)
ในกรณีนี้ Fscanf ถอดรหัสสตริงจากเครื่องอ่านเป็น เอา ตัวแปร และ อ่าน ตัวแปรเก็บผลลัพธ์ของรูปแบบ
กริยาการจัดรูปแบบสตริง
Go มีกริยาการจัดรูปแบบมากมายที่คุณสามารถใช้ร่วมกับฟังก์ชันการจัดรูปแบบสตริงได้
มีกริยาการจัดรูปแบบสตริงทั่วไปเช่น %ใน กริยาในตัวอย่างฟังก์ชันการจัดรูปแบบสตริง คุณสามารถใช้กริยาการจัดรูปแบบสตริงทั่วไปเพื่อจัดรูปแบบข้อมูลชนิดใดก็ได้
คุณสามารถใช้ %#ใน กริยาเพื่อส่งออกค่าใด ๆ the %+v สำหรับโครงสร้าง %T กริยาสำหรับประเภทของค่าใด ๆ และ %% กริยาที่ไม่มีค่า
อัพเดท play store ยังไงครับ
type any struct {
name string
age int
isLoggedIn bool
}
var instance = any {
name: "John Doe",
age: 34,
isLoggedIn: true,
}
var result = fmt.Sprintf("This is a struct formatting example %+v", instance)
fmt.Println(result)
ดิ ผลลัพธ์ ตัวแปรเก็บสตริงที่จัดรูปแบบของโครงสร้างอินสแตนซ์ หากคุณพิมพ์ออกมา ควรมีลักษณะดังนี้:
This is a struct formatting example {name:John Doe age:34 isLoggedIn:true}
มีกริยาสำหรับการจัดรูปแบบข้อมูลเฉพาะของ Go รวมถึงช่องสัญญาณและพอยน์เตอร์
%t | บูลีน |
%d | int, int8 เป็นต้น |
%d, %#x ถ้าพิมพ์ด้วย %#v | uint, uint8 เป็นต้น |
%g | float32, complex64 เป็นต้น |
%s | สตริง |
%p | ชาน. |
%P | ตัวชี้ |
คุณจะต้องแน่ใจว่าคุณไม่ได้ทำผิดพลาดกับกริยาเนื่องจากเป็นกรณี ๆ ไป เช่น ชาน และ ตัวชี้ กริยา
การจัดรูปแบบจำนวนเต็มและทศนิยม
มีกริยารูปแบบสตริงสำหรับการจัดรูปแบบจำนวนเต็มใน ฐานที่แตกต่างกัน . คุณสามารถใช้คำกริยาเหล่านี้เพื่อจัดรูปแบบจำนวนเต็ม
%b | ฐาน2 |
%ค | อักขระที่แสดงโดยจุดโค้ด Unicode ที่สอดคล้องกัน |
%d | ฐาน 10. |
%O | ฐาน 8 |
%O | ฐาน 8 ที่มี 0o นำหน้า |
%q | อักขระที่ยกมาเพียงตัวเดียวใช้ Escape ได้อย่างปลอดภัยด้วยไวยากรณ์ Go |
%x | ฐาน 16 โดยมีอักษรตัวพิมพ์เล็กสำหรับ a-f |
%X | ฐาน 16 พร้อมตัวพิมพ์ใหญ่สำหรับ A-F |
%ใน | รูปแบบยูนิโค้ด: U+1234; เช่นเดียวกับ 'U+%04X' |
ตัวอย่างเช่น คุณสามารถจัดรูปแบบจำนวนเต็มโดยใช้เครื่องหมาย %d กริยา:
var result = fmt.Sprintf("This is an integer formatting example %d", 90)
fmt.Println(result)
เหล่านี้เป็นกริยาสำหรับการจัดรูปแบบตัวเลขทศนิยม
%b | สัญกรณ์วิทยาศาสตร์แบบไม่มีทศนิยมที่มีเลขยกกำลังสอง ในลักษณะของ strconv FormatFloat ด้วยรูปแบบ 'b' เช่น -123456p-78 |
%และ | สัญกรณ์วิทยาศาสตร์ เช่น -1.234456e+78 |
%และ | จุดทศนิยมแต่ไม่มีเลขชี้กำลัง เช่น 123.456 |
%f | จุดทศนิยมแต่ไม่มีเลขชี้กำลัง เช่น 123.456 |
%F | คำพ้องความหมายสำหรับ %f |
%g | %e สำหรับเลขชี้กำลังขนาดใหญ่ มิฉะนั้น %f ความแม่นยำด้านล่าง |
%G | %E สำหรับเลขชี้กำลังขนาดใหญ่ %F ไม่เช่นนั้น |
%x | เลขฐานสิบหก (ด้วยเลขยกกำลังสองเลขชี้กำลัง) เช่น -0x1.23abcp+20 |
%X | เลขฐานสิบหกตัวพิมพ์ใหญ่ เช่น -0X1.23ABCP+20. |
ต่อไปนี้คือตัวอย่างการจัดรูปแบบจุดทศนิยมโดยไม่มีเลขชี้กำลังด้วย %f กริยา.
เขียนจดหมายถึงทหาร
var result = fmt.Sprintf("This is a floating point formatting example %f", 432.9503)
fmt.Println(result)
คุณสามารถใช้กริยาทั่วไปได้เสมอหากคุณไม่แน่ใจเกี่ยวกับประเภท
การจัดรูปแบบสตริงและไบต์
สตริงและสไลซ์ของประเภทไบต์ค่อนข้างคล้ายกันใน Go นี่คือแฟล็กสำหรับการจัดรูปแบบสตริงและไบต์
%s | ไบต์ที่ไม่ได้ตีความของสตริงหรือสไลซ์ |
%q | สตริงที่มีเครื่องหมายอัญประกาศคู่ได้อย่างปลอดภัยด้วย Go syntax |
%x | ฐาน 16 ตัวพิมพ์เล็ก อักขระสองตัวต่อไบต์ |
%X | ฐาน 16 ตัวพิมพ์ใหญ่ อักขระสองตัวต่อไบต์ |
นี่คือตัวอย่างการจัดรูปแบบสตริงด้วยเครื่องหมาย %s กริยา.
var score = "example"
var result = fmt.Sprintf("This is a string formatting example %s", score)
fmt.Println(result)
แพ็คเกจ fmt จำเป็นสำหรับการเขียนโปรแกรม Python
ดิ fmt แพ็คเกจมีฟังก์ชันส่วนใหญ่ที่คุณต้องการสำหรับการจัดรูปแบบสตริง ไปยังให้ สตริง แพ็คเกจสำหรับการจัดการสตริงและ a บันทึก แพ็คเกจที่สามารถจัดรูปแบบสตริงสำหรับการบันทึก
ดิ fmt แพ็คเกจมีฟังก์ชั่นที่ใช้ io.นักเขียน และ io.Reader อินเทอร์เฟซ คุณจะพบว่ามีประโยชน์สำหรับกรณีการใช้งานหลายอย่าง เช่น การสร้างเว็บและแอปพลิเคชันบรรทัดคำสั่ง