当前位置: 首页 > news >正文

网站开发可以学吗站长基地

网站开发可以学吗,站长基地,景县网站建设,wordpress 自定义内容模型流程控制 Go语言中有以下几种常见的流程控制语句: 条件语句(Conditional Statements): if语句:用于根据条件执行代码块。else语句:在if条件不满足时执行的语句块。else if语句:用于在多个条件之…

流程控制

Go语言中有以下几种常见的流程控制语句:

  1. 条件语句(Conditional Statements):

    • if语句:用于根据条件执行代码块。
    • else语句:在if条件不满足时执行的语句块。
    • else if语句:用于在多个条件之间进行判断。
    age := 20if age >= 18 {fmt.Println("成年人")
    } else {fmt.Println("未成年人")
    }score := 85
    if score >= 90 {fmt.Println("优秀")
    } else if score >= 80 {fmt.Println("良好")
    } else {fmt.Println("及格")
    }
    
  2. 循环语句(Loop Statements):

    • for循环:用于重复执行一段代码块,可以指定循环条件、初始语句和后续语句。
    • range循环:用于遍历数组、切片、字符串、映射等数据结构中的元素。
    // for循环
    for i := 1; i <= 5; i++ {fmt.Println(i)
    }
    //for遍历string
    str := "hello,nihao"
    fmt.Println(str)
    fmt.Println("字符串str长度为:", len(str))
    for i := 0; i < len(str); i++ {//fmt.Printf("字节打印:", str[i]) //直接打印是字符的编码fmt.Printf("%c", str[i])
    }
    // range循环
    numbers := []int{1, 2, 3, 4, 5}
    for index, value := range numbers {fmt.Printf("索引:%d,值:%d\n", index, value)
    }
    //range遍历string
    for i, v := range str {fmt.Printf("索引位置:%d的值为:%c\n", i, v)//索引位置:0的值为:h
    }
    
  3. 选择语句(Selection Statements):

    • switch语句:根据表达式的值选择执行不同的分支。
    num := 2switch num {
    case 1:fmt.Println("选择了1")
    case 2:fmt.Println("选择了2")
    default:fmt.Println("未知选择")
    }fruit := "apple"
    switch fruit {
    case "apple", "pear":fmt.Println("选择了苹果或梨子")
    case "banana":fmt.Println("选择了香蕉")
    default:fmt.Println("未知选择")
    }
    
  4. 跳转语句(Jump Statements):

    • break语句:用于跳出当前循环或switch语句。
    • continue语句:用于跳过当前循环的剩余代码并开始下一次迭代。
    • goto语句:无条件地转移到指定标签的语句。
    for i := 1; i <= 5; i++ {if i == 3 {break // 当i等于3时跳出循环}fmt.Println(i) // 1 2}for i := 1; i <= 5; i++ {if i == 3 {continue // 当i等于3时跳过本次循环,继续下一次循环}fmt.Println(i) //1 2 4 5}i := 0
    Loop:for {i++if i == 3 {goto Loop // 跳转到Loop标签处继续执行循环} else if i == 5 {break Loop // 在第5次循环时跳出循环}fmt.Println(i)//1 2 4}
    

除了上述常见的流程控制语句,Go语言还提供了一些其他的关键字和语句来处理程序的流程控制,如:

  • fallthrough:在switch语句中,用于贯穿到下一个分支的代码块。

    默认情况下,当一个分支的条件满足时,switch语句会执行该分支并终止,不会继续执行其他分支。但是,如果在某个分支使用了fallthrough关键字,那么即使该分支的条件满足,程序也会继续执行下一个分支,无论下一个分支的条件是否满足。

    num := 2switch num {
    case 1:fmt.Println("数字是1")
    case 2:fmt.Println("数字是2")fallthrough
    case 3:fmt.Println("数字是3")
    default:fmt.Println("未知数字")
    }
    

    输出结果:

    数字是2
    数字是3
    
  • select:用于在多个通道操作中进行选择和执行。

    select语句用于在多个通道操作中进行选择和执行。它类似于switch语句,但是针对通道操作。select语句会监听多个通道的操作,一旦有某个通道操作可以进行,就会执行对应的代码块。

    package mainimport ("fmt""time"
    )func main() {ch1 := make(chan string)ch2 := make(chan string)go func() {time.Sleep(2 * time.Second)ch1 <- "Hello from channel 1"}()go func() {time.Sleep(1 * time.Second)ch2 <- "Hello from channel 2"}()select {case msg1 := <-ch1:fmt.Println(msg1)case msg2 := <-ch2:fmt.Println(msg2)}
    }
    

    输出结果:

    Hello from channel 2
    

    因为ch2通道的操作先准备好了,所以程序执行对应的代码块。

  • defer:用于延迟执行函数调用,通常用于释放资源或错误处理。

    defer用于延迟执行函数调用,通常用于释放资源或错误处理。被defer关键字修饰的函数调用会在包含它的函数执行完毕后才执行,即使函数发生了错误也会执行。

    示例代码:

    goCopy Codepackage mainimport "fmt"func main() {defer fmt.Println("这行代码会最后执行")fmt.Println("这行代码会第一个执行")
    }
    

    输出结果:

    这行代码会第一个执行
    这行代码会最后执行
    

    defer语句会将函数调用推迟到包含它的函数执行完毕后执行。

    defer还可以用于关闭文件、释放锁、清理资源等操作,确保在函数结束时这些操作一定会执行,不受返回或错误的影响。

http://www.hkea.cn/news/130828/

相关文章:

  • 网页设计课程主要内容seo学校
  • php 深圳 电子商务网站开发seo优化好做吗
  • 网站建设开发技术天津济南网站设计
  • 信息公开网站建设网店推广分为哪几种类型
  • 南皮网站建设价格seo搜索引擎优化方式
  • 网上购物系统的设计与实现论文长沙seo优化公司
  • 风景旅游网页制作素材seo推广灰色词
  • 网站制作网站建设网页设计页面
  • 网站开发兼容极速字体颜色推荐seo平台优化服务
  • wordpress建站流量齐三seo顾问
  • 怎么看一个网站做没做竞价公司网站怎么建立
  • seo神马网站推广器怎么做神马搜索排名seo
  • 桂林漓江景区网站优化推广排名
  • 网站首页模板设计图网络推广平台代理
  • 一女被多男做的视频网站搜全网的浏览器
  • 建设公司网站费用电脑培训课程
  • 电子商务网站建设课后题女生学网络营销这个专业好吗
  • 新疆兵团建设网站商丘seo优化
  • 手机微信网站怎么做的软文发布网站
  • 传奇手游发布网站seo排名优化方式
  • 网站建设明细报价外链信息
  • 哪个网站做漫画可以有钱营销型网站设计
  • wordpress在线视频直播湖南正规关键词优化
  • 花木企业网站源码全网推广的方式
  • 网站开发商怎么关闭图片显示站长之家新网址
  • 灯饰如何做网站推广纯手工seo公司
  • 晋中公司做网站seo站长之家
  • 到哪里找人做网站优化seo培训班
  • 深圳网站开发哪家专业搜索到的相关信息
  • 湖北武汉网站制作引擎搜索下载