iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
自我挑戰組

轉職未滿一年的點點滴滴系列 第 18

[Day 18] -『 GO語言學習筆記』- 核心型別(IV)

  • 分享至 

  • xImage
  •  

以下筆記摘錄自『 The Go Workshop 』。

接續上一篇的學習筆記

其實可以直接使用for range來處理rune,因為Go語言會自動把for i 走訪runes轉成for range迴圈。

package main

import "fmt"

func main() {
	username := "Ako sa máš"
	runes := []rune(username)
    
	for _, v := range runes {
	fmt.Print(string(v), " ")
	}
}

所以若要個別處理UTF-8字串的字元,可將字串轉成rune型別切片、再用for range來走訪就是最方便的做法。

Go 語言中,只要使用for range去走訪多位元組編碼字串,就可以避免讀到無效的UTF-8字元了。

For example,

package main

import "fmt"

func main() {
	logLevel := "お元気ですか"
	for index, runeVal := range logLevel {
		fmt.Println(index, string(runeVal))
	}
}
///Output
0 お
3 元
6 気
9 で
12 す
15 か

記得習慣,如果字串需要計算長度或者擷取字元的話。就要先把它轉換成rune,避免長度讀取錯誤,導致後續更多錯誤發生。

nil值

nil值是Golang的特殊資料值,代表無值也無型別的一個狀態。如果用nil值來計算的話,就會發生問題。我們常利用nil值來確認,比方說處理指標或error值時,都可以先行判斷是不是nil值,也就是判斷是否為空值。


上一篇
[Day 17] - 『轉職工作的Lessons learned』 - Cube.js / Redis TimeoutError
下一篇
[Day 19] - 『轉職工作的Lessons learned』 - GraphQL (Hasura) - Query/Mutation
系列文
轉職未滿一年的點點滴滴30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言