您好,登錄后才能下訂單哦!
這篇文章主要講解了“一根短橫線在Golang和Python中有什么作用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“一根短橫線在Golang和Python中有什么作用”吧!
不輸出日期時間前面的0
我們在使用 Python 輸出時間日期的時候,一般格式是這樣的:YYYY-mm-dd HH:MM:SS,例如:2021-03-22 09:10:12。可以看到03和09前面都有一個0。這樣做的好處,是可以讓日期時間保持相同的長度,于是就可以通過字符串的方式比較大小。
但有時候,因為某些原因,你可能確實不想補0,你就想輸出2021-3-22 9:10:12這種格式的時間。
但我們知道,在 Python 里面把日期時間格式化輸出,代碼如下:
import datetime now = datetime.datetime.now() dt_str = now.strftime('%Y-%m-%d %H:%M:%S')
在這個格式化符號里面,可以看到我們本身就使用的是一個字符,月份就是%m,難道還有另外一個符號用來表示不補0的日期?
實際上,不補0并不需要另外一個符號來表示,我們只需要在%和m之間加上一根短橫線就可以了:
import datetime now = datetime.datetime.now() dt_str = now.strftime('%Y-%-m-%-d %-H:%-M:%-S') print(dt_str)
運行效果如下圖所示:
Golang 結構體與 JSON 的互相轉換
在使用 Golang 的時候,我們有時候需要在結構體和 JSON 字符串之間互相轉換。在轉換的工程中,可能會發現有些字段是多余的。我們不想讓 JSON中的某些字段轉到結構體里面,或者不想讓結構體里面的某些字段轉到 JSON 中去。
對于從 JSON 轉到結構體,要忽略字段非常簡單,例如有如下一個 JSON 字符串:
{"name": "kingname", "salary": 999999999, "address": "上海", "handsome": true}
在轉成結構體的時候,我不想要handsome這個字段,于是可以這樣寫代碼:
package main import ( "encoding/json" "fmt" ) type Info struct { Name string `json:"name"` Salary int64 `json:"salary"` Address string `json:"address"` } func main() { jsonstr := `{"name": "kingname", "salary": 999999999, "address": "上海", "handsome": true}` var info Info err := json.Unmarshal([]byte(jsonstr), &info) if err != nil { panic(err) } fmt.Println(info) }
運行效果如下圖所示:
但問題是,如果現在給你一個結構體,但是轉成 JSON 的時候不想要其中一個字段,應該怎么操作?可能有人會以為,在定義結果體的時候,不要加上json:"xxx"就可以了。但實際執行的效果如下圖所示:
Golang 會直接使用這個字段在結構體中的名字來轉成 JSON。
如果不想要這個字段,實際上有一個非常簡單的辦法,就是在定義結構體的時候,加上json:"-",例如:
type Info struct { Name string `json:"name"` Salary int64 `json:"salary"` Address string `json:"address"` Handsome bool `json:"-"` }
運行效果如下圖所示:
通過指定這個橫線,就能忽略這個字段了。
感謝各位的閱讀,以上就是“一根短橫線在Golang和Python中有什么作用”的內容了,經過本文的學習后,相信大家對一根短橫線在Golang和Python中有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。