GO 从零开始的语法学习二

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
}
复制代码

#函数语法要点回顾

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7个有用的Vue开发技巧

1 状态共享 随着组件的细化&#xff0c;就会遇到多组件状态共享的情况&#xff0c;Vuex当然可以解决这类问题&#xff0c;不过就像Vuex官方文档所说的&#xff0c;如果应用不够大&#xff0c;为避免代码繁琐冗余&#xff0c;最好不要使用它&#xff0c;今天我们介绍的是vue.js …

Kewail-邮件短信接口的基础教程

短信接口接入流程开始接入手机短信接口接入操作流程&#xff1a;申请短信签名 → 申请短信模板 → 生成AccessKey → 下载DEMO/攒写接口调用文档 → 免费测试发送 → 购买发信量正式使用。一、申请短信签名接入API接口&#xff0c;通过1069通道发送验证码等短信&#xff0c;必须…

传百度无人车计划分拆,百度回复:不实信息,目前未有分拆计划

据《财经》报道&#xff0c;百度无人车项目正在筹备分拆(spin off)当中&#xff0c;且正在寻找外部投资机构融资。一位接近百度无人车项目人士对《财经》表明&#xff0c;分拆就是时间问题。对于无人车项目分拆一事&#xff0c;百度对 36 氪表示&#xff0c;媒体报道不实。目前…

又见回文

又见回文 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description “回文串”是一个正读和反读都一样的字符串&#xff0c;比如“level”或者“noon”等等就是回文串。现在呢&#xff0c;就是让你判断输入的字符串是否是回文串。 Inpu…

Fighting_小银考呀考不过四级【递推】

Fighting_小银考呀考不过四级 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 四级考试已经过去好几个星期了&#xff0c;但是小银还是对自己的英语水平担心不已。 小银打算好好学习英语&#xff0c;争取下次四级考试和小学弟小…

从xml中返回的对象,和new 返回的对象时不同的。

public BigDecimal getTax() {return tax null ? BigDecimal.ZERO : tax;} 这是自定义的一个类 对null 做出了处理。 但是如果是直接从xml 查询返回的该对象&#xff0c; tax() 字段还是会产生null <resultMap id"twoToNine" type"" ><result …

三国佚事——巴蜀之危【递推】

三国佚事——巴蜀之危 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 话说天下大势&#xff0c;分久必合&#xff0c;合久必分。。。却道那魏蜀吴三国鼎力之时&#xff0c;多少英雄豪杰以热血谱写那千古之绝唱。古人诚不我欺…

HTTP Authentication(HTTP认证)(转)

HTTP协议规范中有两种认证方式&#xff0c;一种是Basic认证&#xff0c;另外一种是Digest认证&#xff0c;这两种方式都属于无状态认证方式&#xff0c;所谓无状态即服务端都不会在会话中记录相关信息&#xff0c;客户端每次访问都需要将用户名和密码放置报文一同发送给服务端&…

们--加强斐波那契【递推】

们--加强斐波那契 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 对于斐波那契数列想必各位已经见过了。这里给出一个加强版。 F[i] i (i < 3); F[i] F[i-1] F[i-2] F[i-3](i > 4); Input 多组输入。每组输入一…

inux CentOS 7 修改内核启动默认顺序

2019独角兽企业重金招聘Python工程师标准>>> inux CentOS 7 修改内核启动默认顺序 2018年12月07日 09:53:32 XueShengke 阅读数&#xff1a;781 转载于&#xff1a;21运维 Linux CentOS 7.X 如何修改内核启动默认顺序 我们知道&#xff0c;centos 6.x是通过/etc/gr…

快速掌握ajax!

ajax是什么&#xff1f;ajax——asynchronous JavaScript and xml&#xff1a;异步的js和xml它能使用js访问服务器&#xff0c;而且是异步访问服务器给客户端的响应一般是整个页面&#xff0c;一个html完整页面&#xff01;但在ajax中因为是局部刷新&#xff0c;那么服务器就不…

锁底层之内存屏障与原语指令

Java内存模型1&#xff0e;工作内存和主内存Java内存模型规定所有的变量都存储在主内存中&#xff08;JVM内存的一部分&#xff09;&#xff0c;每个线程有自己独立的工作内存&#xff0c;它保存了被该线程使用的变量的主内存复制。线程对这些变量的操作都在自己的工作内存中进…

微信点击链接,用默认浏览器中打开指定网址链接!

2019独角兽企业重金招聘Python工程师标准>>> 最近有客户咨询&#xff0c;自己的链接在微信种推广&#xff0c;经常会被无缘无故封杀&#xff0c;有没有一种功能&#xff0c;用户在微信中点击我们推广的链接&#xff0c;可以自动强制跳转到手机默认浏览器中打开指定的…

elasticsearch存储空间不足导致索引只读,不能创建

问题描述 1.添加数据时&#xff0c;报错&#xff0c;原因是&#xff0c;一旦在存储超过95&#xff05;的磁盘中的节点上分配了一个或多个分片的任何索引&#xff0c; 该索引将被强制进入只读模式 ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow del…

java版spring cloud+spring boot 社交电子商务平台:服务消费(基础)

使用LoadBalancerClientSpring cloud b2b2c电子商务社交平台源码请加企鹅求求&#xff1a;一零三八七七四六二六。在Spring Cloud Commons中提供了大量的与服务治理相关的抽象接口&#xff0c;包括DiscoveryClient、这里我们即将介绍的LoadBalancerClient等。对于这些接口的定义…

Monthly Expense【二分】

B - Monthly Expense POJ - 3273 Farmer John is an astounding accounting wizard and has realized he might run out of money to run the farm. He has already calculated and recorded the exact amount of money (1 ≤ moneyi ≤ 10,000) that he will need to spend …

关于HTTP协议,一篇就够了

原文地址&#xff1a;https://www.cnblogs.com/ranyonsue/p/5984001.html HTTP简介 HTTP协议是Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;的缩写,是用于从万维网&#xff08;WWW:World Wide Web &#xff09;服务器传输超文本到本地浏览器的传送协议…

Oracle关联查询-数据类型不一致问题 ORA-01722: 无效数字

一、存在表A和表B&#xff0c;都包含字段user_no&#xff0c;但数据类型不一致&#xff0c;如下&#xff1a; create table A ( user_id varchar2(20), user_no number(12,0), xxx ); create table B ( user_name varchar2(60), user_no varchar2(20), xxx ); 二、现有某项业务…

1096: 字符逆序

1096: 字符逆序 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 2017 Solved: 1059 [Submit][Status][Web Board] Description 将一个字符串str的内容颠倒过来&#xff0c;并输出。str的长度不超过100个字符。 Input 输入包括一行。 第一行输入的字符串。 Output 输出…

Ajax_Apache访问资源文件的权限配置、资源存放路径配置、配置虚拟主机、动态网站静态网站区别...

1、配置资源的访问权限 修改配置文件&#xff1a;httpd.conf 文件 改完之后要重启 2、切换资源默认存放目录www 修改配置文件httpd.conf 文件中的存放目录 3、Apache是否能够同时支持多个站点 Apache能否支持通过不同的域名访问不同的站点 可以 做法&#xff1a;配置虚拟主机…