天天看點

Go語言學習筆記,小白都能學會!(條件語句篇)

作者有話說!

害,這幾天一直忙,是以沒更新,也沒啥人看,我隻好自己寫着自己看看

前一陣我是想釋出一個關于Python爬蟲的代碼的,但是那個網站,CSDN客服部說嚴重色情,不能發,咳咳,那就算了,今天帶來Go語言學習筆記,小白都能看懂那種!

直接開始上筆記。

package main

import (
	"fmt"
	"time"
)
var week time.Duration

func main() {
	// 2020-09-01 學習Go語言筆記
	// 擷取目前時間
	t := time.Now()
	// 輸出目前時間,用0000-00-00 00:00:00格式
	// %d是列印整形
	// %2d是列印最低兩位數
	// %02d是列印最低兩位數,如果不足兩位數用0補全
	var titleName string = "測試語句"

	/* 判斷語句 */
	/*
	結構方式:
		if 布爾表達式 {
			Coding...
			代碼塊
		}
	無需()括起來表達式
	 */
	/* 單個if判斷 */
	if titleName == "測試語句" {
		fmt.Printf("%04d-%02d-%02d %02d:%02d:%02d", t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second())
	}

	/* ---------------------------------華麗的分割線--------------------------------- */

	/* if...else語句 */
	/*
	if文法:
	if 布爾表達式 {
		當布爾表達式為true時執行的代碼
	}
	 */
	if titleName == "測試語句" {
		/* 在布爾表達式中為true */
		fmt.Print("這個結果為true")
	} else {
		/* 在布爾表達式中為false */
		fmt.Print("這個結果為false")
	}

	/* ---------------------------------華麗的分割線--------------------------------- */

	/* if嵌套語句 */
	if titleName == "測試語句" {
		// 判斷過後在判斷一次,這是嵌套
		if 1==1 {
			fmt.Print("這個1等于1")
		}
	} else {
		/* 在布爾表達式中為false */
		fmt.Print("這個結果為false")
	}
	/*
		總結:if語句就像裁判,如果給的表達式成立,就是會執行,例如1==1,他的結果是true,那麼:
			if 1==1 {
				fmt.Print("Hello World")
			}
		就會列印Hello World
		---------------------------------華麗的分割線---------------------------------
		else的意思是否則的意思,如果:
			if 1!=1 {
				fmt.Print("Hello World")
			} else {
				fmt.Print("Oh, Error")
			}
		如果1不等于1時就會輸出Oh Error
		---------------------------------華麗的分割線---------------------------------
		代碼翻譯:
			if 1==1 {
				fmt.Print("Hello World")
			} else {
				fmt.Print("Oh, Error")
			}
			如果1=1那麼輸出Hello World
			否則就輸出Oh, Error
	*/

	/* ---------------------------------華麗的分割線--------------------------------- */

	/* switch語句 */
	/*
		介紹
		switch 語句用于基于不同條件執行不同動作,每一個 case 分支都是唯一的,從上至下逐一測試,直到比對為止。
		switch 語句執行的過程從上至下,直到找到比對項,比對項後面也不需要再加 break。
		switch 預設情況下 case 最後自帶 break 語句,比對成功後就不會執行其他 case。
		switch文法:
			switch var1 {
				case val1:
					Coding...
				case val2:
					Coding...
				default:
					Coding...
			}
	 */
	/* 定義局部變量 */
	var Str string = "我是豬"
	switch Str {
		case "我是豬":
			fmt.Print("對,你是個豬!")
		default:
			fmt.Print("啊咧,你不是豬")
	}
	/*
	上面執行結果:
		對,你是個豬
	*/
	/* select語句 */
	/*
	介紹:
		select 是 Go 中的一個控制結構,類似于用于通信的 switch 語句。每個 case 必須是一個通信操作,要麼是發送要麼是接收。
		select 随機執行一個可運作的 case。如果沒有 case 可運作,它将阻塞,直到有 case 可運作。一個預設的子句應該總是可運作的。
	文法:
		select {
			case communication clause  :
				statement(s);
			case communication clause  :
				statement(s);
			default :
				statement(s);
		}
	 */
	var c1, c2, c3 chan int
	var i1, i2 int
	select {
	case i1 = <-c1:
		fmt.Printf("received ", i1, " from c1\n")
	case c2 <- i2:
		fmt.Printf("sent ", i2, " to c2\n")
	case i3, ok := (<-c3):  // same as: i3, ok := <-c3
		if ok {
			fmt.Printf("received ", i3, " from c3\n")
		} else {
			fmt.Printf("c3 is closed\n")
		}
	default:
		fmt.Printf("no communication\n")
	}
	/*
	以上代碼執行效果是:
		no communication
	 */
}