ASCII, Unicode, UTF-8? How do computers process text?
I realized that I don't fully understand how strings work in Go. Explored documentation to understand the history and evolution of text encoding.
I realized that I don't fully understand how strings work in Go. Explored documentation to understand the history and evolution of text encoding.
近期在 Go 处理字串时发现对于电脑处理文字的原理不是很透彻,所以翻了更多教学文件了解电脑是如何处理文字的。历史上电脑如何处理文字?以及后续 ASCII、Unicode、UTF-8、UTF-16 相关演进特点与背后取舍,了解为什么现代文字编码都使用 UTF-8。
近期在 Go 處理字串時發現對於電腦處理文字的原理不是很透徹,所以翻了更多教學文件了解電腦是如何處理文字的。歷史上電腦如何處理文字?以及後續 ASCII、Unicode、UTF-8、UTF-16 相關演進特點與背後取捨,了解為什麼現代文字編碼都使用 UTF-8。
When indexing position `n` in a Go string, why isn't the `n`th character returned? In Go, you get a "Rune"; direct indexing gets you a byte.
当在 Go 字串中索引位置 `n` 时,为什么没有得到第 `n` 个字元?相较于其他程式语言一串文字在遍历时会预期拿到单一个字符,在 Go 会拿到「Rune」;如果直接透过索引取得 string 内容会拿到 byte。透过实际解 Codewars 题目了解处理字串要留意的东西
當在 Go 字串中索引位置 `n` 時,為什麼沒有得到第 `n` 個字元?相較於其他程式語言一串文字在遍歷時會預期拿到單一個字符,在 Go 會拿到「Rune」;如果直接透過索引取得 string 內容會拿到 byte。透過實際解 Codewars 題目了解處理字串要留意的東西
When interacting with MongoDB, I encountered unfamiliar syntax in Struct fields. This article explores why Go Struct Tags exist and the problems they solve.
最近在与 MongoDB 互动时发现 Struct 栏位结尾有一段语法不是很熟悉,这篇文章探讨 Struct Tag 存在的原因以及解决什么问题。与其命令式的操纵资料,透过宣告式的方式来描述资料格式是 Struct Tag 的主要用途。
最近在與 MongoDB 互動時發現 Struct 欄位結尾有一段語法不是很熟悉,這篇文章探討 Struct Tag 存在的原因以及解決什麼問題。與其命令式的操縱資料,透過宣告式的方式來描述資料格式是 Struct Tag 的主要用途。
Goroutine 是由 Go 語言本身管理的輕量級執行緒(User-space Thread),而不是由作業系統管理的執行緒(OS Thread)。背後使用 M:N 排程模型。這意味著,M 個 Goroutine 會被分配到 N 個作業系統執行緒(OS Threads)上執行。
Symmetric encryption uses the same key for encryption and decryption by both parties, posing risks such as key sharing and interception
「对称加密」就是通讯双方进行加密与解密使用相同的金耀,但除了双方都要保守金钥外,怎么让双方都持有相同的金钥本身就是个问题,存在被劫持的风险(中间人攻击)。 「非对称加密」透过一对金钥(Key Pair),也就是公钥与私钥来解决对称加密会遇到的问题。
「對稱加密」就是通訊雙方進行加密與解密使用相同的金耀,但除了雙方都要保守金鑰外,怎麼讓雙方都持有相同的金鑰本身就是個問題,存在被劫持的風險(中間人攻擊)。「非對稱加密」透過一對金鑰(Key Pair),也就是公鑰與私鑰來解決對稱加密會遇到的問題。
In Go, there are two common data structures for "sequence data": Array and Slice. They are similar in syntax, but the differences in behavior.
在 Go 语言中,有两种常见的资料结构可用于表示「序列资料」:Array 与 Slice。这两者在语法上相似,但背后行为与使用情境差异非常关键。简单来说,Array 是固定长度(Static Array),而 Slice 是动态长度(Dynamic Array)。