Day6-Go叙述

前言

Go 语言的叙述,与大部分程序语言用法差不多,所以对学过程序语言的朋友,不会太需要花时间理解,这里来讲解Go 语言的叙述,一些基本的用法。

if

相信 if 是大部分程序语言都有的判式,当中的结构先参考以下,

if condition {
    // run code here.
}

结构里会有一个条件,这个条件是个布林值,如果为 true,则会执行括号里的程序码,相反的,如果为 false,则会直接跳过,我们直接带入一个实例:

package main
 
import "fmt"
 
func main(){
   // 宣告点(2,1)
   var x = 2
   var y = 1
   // 判断是否(2,1)在直线方程序y=x-1上
   if y == x-1 {
       fmt.Println("(2,1)在直线方程序y=x-1上")
   }
}

可以试着自己执行看看此段程序码,因为 if 後的条件是成立的,所以会执行括号内的程序码,结果会印出"(2,1)在直线方程序y=x-1上"。

而if叙述,常常会伴随着 else,if else 相当於二选一的概念,当 if 中的条件不成立时,则会执行 else 里的程序码,我们先看一下结构:

if condition {
       // run code here.
   } else{
       // run code here.
   }

这里直接来看一个实例:

package main

import "fmt"

func main(){
  // 宣告点(2,2)
  var x = 2
  var y = 2
  // 判断是否(2,2)在直线方程序y=x-1上
  if y == x-1 {
      fmt.Println("(2,2)在直线方程序y=x-1上")
  } else{
   fmt.Println("(2,2)不在直线方程序y=x-1上")
  }
}

可以试着自己执行看看此段程序码,因为 if 後的条件没有成立的,所以会执行 else 括号内的程序码,结果会印出" (2,2) 不在直线方程序 y=x-1 上"。

而一个叙述,常常不会只有一个情况,所以会有各种不同的条件,然而需要增加更多的判断,这时就可以多增加 else if 来新增条件判断,以执行程序:

if condition {
       // run code here.
   } else if condition {
       // run code here.
   } else {
       // run code here.
   }

这里也直接来看一个实例:

package main
 
import (
   "fmt"
)
 
func main() {
   x := 31
 
   if x < 10 {
       fmt.Println("x小於10")
   } else if x < 20 {
       fmt.Println("x大於等於10,x小於20")
   } else if x < 30 {
       fmt.Println("x大於等於20,x小於30")
   } else {
       fmt.Println("x大於30")
   }
}

if 叙述可以有需多的变化,可以依自己的需求来设计 if 叙述,再来我们将继续介绍另一种叙述。

switch

switch 叙述算是一种语法糖,其目的是在简化 if 叙述的语法, switch 是 C 家族语言的传统,Go 语言保留了这项特性,且对其做些微的改良,我们先来看 switch 的结构语法:

switch v {
   case a, b:
       // run 1_block code here.
   case c:
       // run 2_block code here.
       fallthrough
   case d:
       // run 3_block here.
   default:
       // run 4_block here.
   }

这里稍微讲解一下 switch 的语法,switch 会检查资料 v,并依照 v 的值来决定执行哪个 case 里的程序。仔细来说,当 v 的值等於 a 或 b,则会执行 1_block,依此类推,若最後三个case的都不成立,则会执行 default 里的程序。而在 case c 尾端,加上了 fallthrough 叙述,这时候会强制执行下一段程序码。在这边直接带一个例子:

package main

import (
   "fmt"
)
 
func main() {
   x := 31
 
   switch {
   case x < 10:
       fmt.Println("x小於10")
   case x < 20:
       fmt.Println("x大於等於10,小於20")
   case x < 30:
       fmt.Println("x大於等於20,小於30")
   default:
       fmt.Println("x大於30")
   }
}

由上述例子,因为 x 为31,都不符合三个 case 的条件,所以自然执行 default 里的程序码。

结语

今天介绍完了 Go 语言的叙述基本用法,其实叙述要写得好,是需要依照自己的需求下去设计的,一层 if 再包一层 if ,包了三四层後,或许就会对未来更改需求时,产生许多的麻烦,所以看似简单的叙述,遇到复杂的需求时,也会需要花时间来设计,希望今天的讲解有帮助到您!

参考来源

https://opensourcedoc.com/golang-programming/selection/


<<:  [前端暴龙机,Vue2.x 进化 Vue3 ] Day5. Vue的起手开发

>>:  Day 02:准备好你的家私,为开发 Angular 做好准备

Day 30 | 将flutter web 部署至 netlify

最後一天就来部署我们的flutter web吧,也算是这系列文中真的跟「web」唯一有关的一篇文XD...

UNIX、BSD 与 Linux 的爱恨情仇

本文目标 熟悉 UNIX 作业系统的发展 认识自由软件运动与 GNU 计画 了解 C 语言是被设计来...

Day17 Combine 04 - Operators 主要类型

Operators 操作符是Combine 中非常重要的一部分,通过各式各样的操作符,可以将原来各自...

CMoney菁英软件工程师战斗营关於低潮期_Week 6

来到第6周 上述到游戏专题已开始 在团体生活中 里面难免会遇到一些纷争 毕竟,只要有人群就会形成一个...

【Day 09】Text Message 应用

前一天我们讲到综合版可以接收所有种类的讯息。 @csrf_exempt def callback(r...