`

Go 控制语句(Go中文读书笔记)

 
阅读更多

 

Go 中只有很少几个结构控制。没有do或者while循环 只有for、switch、if还有叫做类型选择和多路通信转接器select 与其他语言比较是没有圆括号、而语句体必须总是包含在大括号内

 

if x >0 {

return x

} else {

return y

}

强制大括号鼓励将简单的if语句写在多行上。

 

if和switch 接受初始化语句。通常设置一个局部变量 

 

if err := file.Chmod(0664); err !=nil {

log.Stderr(err)

return err

}

 

在Go 语法中是非法的

 

if err != nil 

{

 

}

 

在if函数中有一个Bug

 

if err != nil  {

return err

} else {

return nil

}

 

 

它不会编译。这是Go编译的一个Bug

 

Go 有goto语句 

 

fund myfunc() {

i  := 0

 

Here:

println(i)

i++

  goto Here

}

 

Go中标签大小写是敏感的。

 

 

Go中for循环有三种形式。只有一种是使用分号分隔的

 

for init; condition; post {}  //原始的for循环

 

for condition {} //和while一样

 

for {} // 死循环

 

保留字range 可用于循环。它可以在slice 、array、 string、 channel 。range就是一个迭代器。

当被调用的时候。从循环内容中取一个键值对。基于不同的内容,range返回的东西不同。

 

list := []string{"a","b","c","d","e","f"}

 

for k,v := range list {

//循环 k为下标 v为值

}

 

 

Go 的switch 的表达式不必是常量或者整数,可以是表达式等。默认就是if-else-if-else 判断序列。

没有关键词 break 自动默认截断 如果要继续执行就使用关键词 fallthrough

 

分享到:
评论

相关推荐

    Go语言学习笔记

    Go语言学习笔记基础入门篇,主要介绍Go语言基础语法,数据类型,逻辑语句等。

    Go 学习笔记 第四版

    Go 语言基础语法 Go 语言数据类型 Go 语言变量 Go 语言常量 Go 语言运算符 Go 语言条件语句 Go 语言循环语句 Go 语言函数 Go 语言变量作用域 Go 语言数组 Go 语言指针

    Go语言快速入门笔记(4)–协程并发go关键字,通道chan,select语句

    GO语言快速入门协程并发go关键字协程间通信-通道chanselect语句Go语言快速入门笔记系列传送门 协程并发go关键字 协程是什么 协程,又称微线程,纤程。英文名Coroutine。相比于线程(8M左右),协程(4K左右)占用的...

    Golang学习笔记(三):控制流

    主要介绍了Golang学习笔记(三):控制流,本文讲解了IF、FOR、SWITCH、goto、break、continue等控制流语句的使用实例,需要的朋友可以参考下

    golang_project:golang 语言打基础打基础打基础

    golang 语言学习笔记 [基础才最重要。。 要多学一下~~] 并发性Concurrency 错误和异常处理 error 接口及其使用 defer 语句及使用示例 panic 和 recover 数据库ORM 为什么需要context包 细说通道类型 通道类型篇(一...

    Golang2-new.docx

    个人学习golang笔记,从各种教程中总结而来,作为入门参考。目录如下 目录 1. 入门 1 1.1. Hello world 1 1.2. 命令行参数 2 2. 程序结构 3 2.1. 类型 4 2.1.1. 命名类型(named type)与未命名类型(unamed ...

    go开发实战.doc

    1. 初识Go语言 1 1.1 Go语言介绍 1 1.1.1 Go语言是什么 1 1.1.2 Go语言优势 1 1.1.3 Go适合用来做什么 2 1.2 环境搭建 2 1.2.1 安装和设置 2 1.2.2 标准命令概述 2 1.2.3 学习资料 3 1.3 第一个Go程序 3 ...

    go-ora:Pure Go Oracle客户端

    Go-ora 什么是新的: 版本2.15 支持更多字符集(0x33D,0x33E,0x33F,0x340、0x352、0x353、0x354) 版本2.0-beta 将客户端版本更新为317 将ttc版本更新为:9 使用4个字节的数据包长度而不是2个字节 使用高级...

    JavaScript笔记

    (基于对象和事件驱动的客户端脚本语言;也是一种广泛应用于客户端Web开发的脚本语言) 基于对象:网页中的一切元素都是假象!不需要new,即可直接使用 事件驱动:JavaScript的执行都是由事件引发 解释执行:先读...

    Java学习笔记-个人整理的

    {1.9.6}go-to}{33}{subsection.1.9.6} {1.9.7}\texttt {do-while}}{33}{subsection.1.9.7} {1.10}数组(array)}{34}{section.1.10} {1.10.1}数组变量的声明}{34}{subsection.1.10.1} {1.10.2}数组变量的初始化...

    MySQL的学习笔记(9)

    || SQL Server用户自定义的函数有:标量函数、表值函数(内联表值函数、多语句表值函数)两种。 标量函数:所谓标量函数就是返回的结果只是一个标量(一种类型的一个值)。 CREATE FUNCTION GetSum ( @firstNum ...

    asp.net知识库

    Essential .NET 读书笔记 [第一部分] NET FrameWork的Collections支持 .NET的反射在软件设计上的应用 关于跨程序集的反射 实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述...

    tinysql:构建分布式数据库SQL层的课程

    着重于改变数据库状态SQL(包括DML和DDL):如何实现它们以及如何处理它们与只读语句的交互。 本系列的其他课程 本课程仅侧重于分布式数据库系统SQL层。 如果您也对KV层感兴趣,请参见 。 部署 完成项目后。 您可以...

    SQL Server Table表定义导出工具

    GO CREATE TABLE [dbo].[tbl_Vendor] ( [VendorID] [int] NOT NULL ,[VendorCode] [nvarchar](50) NULL ,[VendorNameEN] [nvarchar](200) NULL ,[VendorNameCN] [nvarchar](200) NULL ,[AddressEN] [nvarchar]...

Global site tag (gtag.js) - Google Analytics