iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
自我挑戰組

30 天學 Golang?Go 啦哪次不 Go系列 第 5

Day5# For loop

默默的來到了第五天,今天要認識 Go 的迴圈應用,總算開始要有寫程式的感覺了!
如果已經準備好了,那我們就開始吧 ─=≡Σ(((っ゚∀゚)っ

for loop

顧名思義是以 for 開頭的迴圈,裡面會包含三個元素,並且用 ; 區隔:

  1. 初始值,通常會使用 := 進行宣告
  2. 達成條件
  3. 迴圈結束後會做的行為

組合起來就會是 for i := 0; i < 10; i++ { // to do... }

package main

import "fmt"

func main() {
    for i := 0; i < 10; i++ {
        fmt.Println(i)
    }
}

// => 印出 0 ~ 9

如果搭配我們上上回提到的 slice 又能玩出更多應用!

package main

import "fmt"

func main() {
    names := []string{"BuiBui", "MeiMei", "Nuna", "Oppa"}
    
    for i := 0; i < len(names); i++ {
                             // slice 取值的方式為 slice[index]
        fmt.Println("I am ", names[i])
    }
}

// => I am  BuiBui
//    I am  MeiMei
//    I am  Nuna
//    I am  Oppa

range

range 基本上會搭配著 slice、map 或 channel 之類的資料使用。

使用方式為 for index, value := range slice { // to do.. }

func main() {
    names := []string{"BuiBui", "MeiMei", "Nuna", "Oppa"}
    
    for i, name := range names {
        fmt.Println(i, name)
    }
}
// => 0  BuiBui
//    1  MeiMei
//    2  Nuna
//    3  Oppa

需要特別注意的是,有時候不一定會使用到 index 但是位置空下來又會噴錯誤,這個時候就會使用 _ 來代替這個空缺的位置:

for _, name := range names {
    fmt.Println(name)
}

結尾

其實各家的迴圈基本上大同小異,學習起來並沒有太多痛苦個感覺XD
看來今天也算是順利度過了...!

如果對內容有任何問題,都歡迎與我告知 :)


上一篇
Day4# 變數宣告
下一篇
Day6# 流程控制
系列文
30 天學 Golang?Go 啦哪次不 Go20

尚未有邦友留言

立即登入留言