כיצד לעצב מחרוזות ב-Go

כיצד לעצב מחרוזות ב-Go

בעת כתיבת קוד Go, תמצא עיצוב מחרוזת שימושי מאוד במצבים רבים. ייתכן שאתה מנתח תשומות או יוצר פלט מורכב יותר מאשר שרשור פשוט. ייתכן שאתה עובד עם סוגים אחרים מלבד מחרוזות רגילות.





עיצוב מחרוזות ב-Go משתמש בתהליך ובתחביר המוכרים של פונקציית printf, שבה משתמשות גם שפות מג'אווה ועד Haskell.





Go מספקת שיטות שונות לעיצוב מחרוזות ב- fmt חֲבִילָה. אתה יכול להשתמש בפונקציות ופעלים לעיצוב מחרוזת בהתאם לפעולה או לכניסות שברצונך לעצב.





עיצוב מחרוזת ב-Go

הפונקציות בחבילת fmt דומות למקבילות, כמו הפונקציה printf ב-bash או C. Go שואב את פעלי העיצוב שלו מ-C.

אתה משתמש פעלים של עיצוב מחרוזת כמצייני מיקום עבור ערכי המשתנים שלך במחרוזת מכילה. לאחר מכן תוכל להעביר את מחרוזת העיצוב לפונקציה כמו Printf , יחד עם ערכים התואמים לאותם מצייני מיקום.



אינך יכול להשתמש בפעלים של עיצוב מחרוזת עם ה הדפס ו Println שיטות. אתה יכול להשתמש בהם בשיטות כמו Printf ו ספרינטף .

fmt.Println("This is a test %v", 90) 
fmt.Printf("This is a test %v", 90)

ה %in פועל מדפיס כל ערך בפורמט ברירת המחדל שלו. ה Println השיטה לא מזהה פעלים ומדפיסה את כל הטיעונים שהיא מקבלת. ה Printf ו ספרינטף functions שניהם מעצבים את ארגומנט המחרוזת הראשון שאתה מעביר אליהם.





  תוצאה של עיצוב מספרים שלמים

פונקציות עיצוב מחרוזות בחבילת fmt

עיצוב מחרוזות ב שפת התכנות Go מחייב אותך להשתמש בפונקציית עיצוב מחרוזת ובפועל. הפונקציה מחזירה את המחרוזת המעוצבת, והפעלים הם מצייני המיקום של הקלט למחרוזת.

ה Printf השיטה מעצבת את הקלט בהתאם למפרט הפורמט ומחזירה את מספר הבתים הכתובים או השגיאות.





אייפון 12 פרו ופרו מקסימום
fmt.Printf("This is a test %v", 90) 

באופן קונבנציונלי, לא תצטרך לדאוג לשגיאות כשאתה משתמש ב- Printf שיטה.

ה ספרינטף השיטה מתבנת לפי הפורמט שצוין ומחזירה את התוצאה כמחרוזת.

var result = fmt.Sprintf("This is a test %v", 90) 

ה Fprintf השיטה מעצבת את המחרוזת וכותבת אותה לכותב (שיטות המיישמות את io.Writer מִמְשָׁק)

// 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 מספק פעלי עיצוב רבים שבהם אתה יכול להשתמש יחד עם פונקציות עיצוב המחרוזות.

העברת שירים מאייפוד ל- itune

ישנם פעלים כלליים לעיצוב מחרוזת כמו ה %in פועל בדוגמאות של פונקציות עיצוב מחרוזת. אתה יכול להשתמש בפעלים הכלליים של עיצוב מחרוזת כדי לעצב כל סוג נתונים.

אתה יכול להשתמש ב % #in פועל להוציא כל ערך, ה %+v עבור מבנים, ה %T פועל עבור סוג של ערך כלשהו, ​​וה- %% פועל ללא ערכים.

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
%c התו המיוצג על ידי נקודת הקוד המתאימה של Unicode.
%d בסיס 10.
%O בסיס 8.
%O בסיס 8 עם קידומת 0o.
%q דמות עם ציטוט יחיד נמלט בבטחה עם תחביר Go.
%איקס בסיס 16, עם אותיות קטנות עבור a-f.
%איקס בסיס 16, עם אותיות גדולות עבור A-F.
%IN פורמט Unicode: 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
%AND נקודה עשרונית אך ללא מעריך, למשל, 123.456
%f נקודה עשרונית אך ללא מעריך, למשל, 123.456
%F מילה נרדפת ל-%f.
%g %e עבור מעריכים גדולים, %f אחרת. דיוק למטה.
%G %E עבור מעריכים גדולים, %F אחרת
%איקס סימון הקסדצימלי (עם חזקת עשרונית של שני מעריכים), למשל -0x1.23abcp+20.
%איקס סימון הקסדצימלי באותיות גדולות, למשל. -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
%איקס בסיס 16, אותיות קטנות, שני תווים לכל בייט
%איקס בסיס 16, אותיות רישיות, שני תווים לכל בייט

הנה דוגמה לעיצוב מחרוזת עם ה %s פועל.

var score = "example" 
var result = fmt.Sprintf("This is a string formatting example %s", score)
fmt.Println(result)

חבילת fmt חיונית עבור תכנות Python

ה fmt החבילה מכילה את רוב הפונקציונליות שתזדקק לעיצוב מחרוזת. Go מספקת גם א מחרוזות חבילה למניפולציה על מיתרים וא עֵץ חבילה שיכולה לעצב מחרוזות לרישום.

ה fmt לחבילה יש פונקציות שמיישמות את io.Writer ו io.Reader ממשקים. אתה תמצא את זה שימושי עבור מקרי שימוש רבים כמו בניית אינטרנט ואפליקציות שורת פקודה.