for循环

  • if条件里不需要括号

  • err != nil 判断是否为空

func main(){const filename = "abc.txt"contents , err := ioutil.ReadFile(filename); err != nil{fmt.Println(err)} else{fmt.Printf("%s\n",contents)}
}
复制代码
  • if的条件里可以进行赋值
  • if的条件里赋值的变量作用域就在这个if语句里
if contents,err := ioutil.ReadFile(filename); err == nil{fmt.Println(string(contents))
}else{fmt.Println("cannit print file contents:",err)
}
复制代码

switch

  • switch会自动break,除非使用fallthrough
  • switch 后可以没有表达式
func grade(score int) string{g := ""switch {case score < 0 || score >100panic(fmt.Sprintf("Wrong score:%d",score))case score < 60:g = "F"case score < 80:g = "C"case score < 90:g = "B"case score <= 100:g = "A"}return g;
}
复制代码

循环

  • for的条件里不需要括号
  • for的条件里可以省略初始条件,结束条件,递增表达式
  • 没有while
func conbertToBin(n int) string{
result := ""
for ; n > 0; n /= 2{
lsb := n % 2
result = strconv.Itoa(lsb) + result
}return result
}func main(){fmt.Println(//101convertToBin(5),//1101convertToBin(13),convertToBin(5555547),convertToBin(0),)
}
复制代码
func printFile (filename string){file, err := os.Open(filename)if err != nil{}
}scanner := bufio.NewScanner(file)for scanner.Scan(){fmt.Println(scanner.Text())}
}复制代码
  • for可以什么条件也不加,此时的for循环为死循环
func forever(){for{fmt.Println("abc")}
}
复制代码

函数

  • 函数可返回多个值
 func div(a,b int)(int,int){return a/b,a % b
}
复制代码
  • 函数返回多个值时可以起名字
  • 仅用于非常简单的函数
  • 对于调用者而言没有区别
func div(a,b int)(q,r int){q = a / br = a % breturn
}
复制代码
func apply(op func(int ,int) int,a,b int) int {p := reflect.VlueOf(op).Pointer(p).Name()fmt.Printf("Calling function %s with args " +"(%d,%d)",opName,a,b)return op(a,b)
}
复制代码
  • 可变参数列表
func sum(numbers ...int) int{sum := 0for i := range values{sum += values[i]}return sum
}
复制代码

#函数语法要点回顾

  • 返回值类型写在最后面
  • 可返回多个值
  • 函数作为参数
  • 没有默认参数,可选参数

GO 从零开始的语法学习二相关推荐

  1. [solidity语法学习二]基于Remix以太坊的BlindAuction模板代码分析

    前言 编译环境:Remix. 代码来源:SolidityDoc. 疑难解决来源:Ethereum gitter. 例子三参考:例图. 以太币单位换算:以太币单位. 本文主要由三个例子构成.分别是Sim ...

  2. 从零开始编写深度学习库(二)FullyconnecteLayer CPU编写

    从零开始编写深度学习库(二)FullyconnecteLayer CPU编写 博客:http://blog.csdn.net/hjimce 微博:黄锦池-hjimce   qq:1393852684 ...

  3. 【从零开始学深度学习编译器】十二,MLIR Toy Tutorials学习笔记一

    本笔记由学习MLIR Tutorials总结而成,欢迎批评指正. Chapter1: Toy语言和AST MLIR提供了一种Toy语言来说明MLIR的定义和执行的流程.Toy语言是一种基于张量的语言, ...

  4. 从零开始学JAVA:二、Java基本语法(四)——流程控制

    从零开始学JAVA:二.Java基本语法(四)--流程控制 程序流程控制 1.顺序结构 2.分支结构 2.1.if-else结构 2.2.switch-case选择结构 2.3.Scanner类的使用 ...

  5. Python基础语法学习笔记

    Python基础语法学习笔记 想淘宝省钱看我简介,博客www.liangxin.name (一) 一.Print()函数 1.数字可以直接输出,无需加引号 只能理解数字,却读不懂文字.因为数字和数学运 ...

  6. 【C++学习之路】第二章——C++基础语法学习(1)之黑客攻击系统

    2 C++基础语法学习(1)之黑客攻击系统 遵循原则:从实战中学习知识 法律声明:本系统仅能攻击自己搭建的网站,作为学习使用,不会触犯法律 time:2020.01.20 author:姜海天 IDE ...

  7. mysql用创建的用户登陆并修改表格_MySQL 基础学习二:创建一个用户表,并增删改查...

    MySQL 基础学习二:创建一个用户表,并 增删改查 提示:MySQL 命令建议都用大写,因为小写运行时,还是翻译成大写的. 第一步,创建一个用户表 1,打开控制台,进入数据库 C:\Users\Ad ...

  8. Docker学习二:Docker镜像与容器

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

  9. 从零开始编写深度学习库(四)Eigen::Tensor学习使用及代码重构

    从零开始编写深度学习库(四)Eigen::Tensor学习使用及代码重构 博客:http://blog.csdn.net/hjimce 微博:黄锦池-hjimce   qq:1393852684 一. ...

最新文章

  1. PCLPCL/OpenNI tutorial 2: Cloud processing (basic)
  2. 九种东西吃多会...
  3. 从SAP客户主数据里直接创建商机(Opportunity)
  4. cnn卷积核参数如何确定_如何确定肉脯软塑包装的热封参数?
  5. python迭代-可迭代对象与迭代器对象
  6. poj-1201 Intervals(差分约束)
  7. jde多目标_《和平精英》PEL职业联赛S3赛季:DKG战队获第四周周冠军,JDE“逆风翻盘”...
  8. 大数据开发笔记(九):Flink基础
  9. 美化复选框html,使用CSS3美化复选框checkbox
  10. [C++项目]C++实现简易的酒店管理系统
  11. 开机引导界面grub找不到
  12. 关于计算机的CPU的发展历史,计算机CPU的全部发展历史
  13. 【技术白皮书】第一章:基于深度学习的文本检测与识别的技术背景
  14. 【虚幻引擎UE】UE5 UMG布局和视觉设计(自适应篇)
  15. Jmeter从入门到精通-看这一篇就够了
  16. 关于log4j日志打印堆栈的记录
  17. ​韩剧影视剪辑30天5710元,短视频大神教你如何快速变现?
  18. 又遇见一个被坑的客户,新买的固态是旧的-_-||,应该是SM2246XT主控
  19. 读《Evolving Algebraic Constructions for Designing Bent Boolean Functions》
  20. 免费cocos2dx3.x视频教程

热门文章

  1. qt创建右键菜单,显示在鼠标点击处
  2. BugkuCTF-WEB题本地管理员
  3. ubuntu服务器ssh登录密码修改,Ubuntu-18.04 下修改root用户密码,安装SSH服务,允许root用户远程登录,安装vsftp服务器...
  4. 软件数控编程_这么多CNC数控编程软件, 你觉得哪个好?
  5. php中带?错误,参考-此错误在PHP中意味着什么?
  6. 计算机应用基础自考,自考计算机应用基础
  7. rocketmq 几种队列_关于RocketMQ的知识
  8. jquery ajax html编码,jQuery AJAX字符编码
  9. 快速搭建springmvc+spring data jpa工程
  10. python列表字典_Python常用对字典、列表的操作