我的Go语言学习之旅三:Go语言中的for循环
这个但是为难我了,我一直是走在WEB前的程序猿,各种循环用起来得心应手。突然间发现到了Go这里竟然行不通了,查阅后才发现,原来Go的for是这样写的。
for i:=0;i<10;i++{
fmt.Printf("%d\n",i);
}
非常有才的一种写法,我用起来感觉的确没有 带有圆括号舒服。
接下来。看很多其它关于 for 的实例吧
Go 的 for 循环有三种形式。仅仅有当中的一种使用分号。
for init; condition; post { } ← 和 C 的 for 一样
for condition { } ← 和 while 一样
for { } ← 和 C 的 for(;;) 一样(死循环)
短声明使得在循环中声明一个序号变量更加easy。
sum := 0
for i := 0; i < 10; i++ {
sum += i ← sum = sum + i的简化写法
} ← i 实例在循环 结束 会失
最后,因为 Go 没有逗号表达式,而 ++ 和 – 是语句而不是表达式,假设你想 在 for 中运行多个变量,应当使用 平行赋值。 // Reverse a
for i, j := 0, len(a)-1; i < j; i, j = i+1, j-1 { ←平行赋值
a[i], a[j] = a[j], a[i] ←这里也是
}
break 和 continue
利用 break 能够提前退出循环,break 终止当前的循环。
for i := 0; i < 10; i++ {
if i > 5 { break ←终止这个循环,仅仅打印0到5}
println(i)
}
循环嵌套循环时。能够在 break 后指定标签。 用标签决定 哪个 循环被终止:
J: for j := 0; j < 5; j++ {
for i := 0; i < 10; i++ {
if i > 5 { break J ←如今终止的是j循环,而不是i的那个
}
println(i)
}
}
利用 continue 让循环进入下一个迭代,而略过剩下的全部代码。以下循环打印 了 0 到 5。 for i := 0; i < 10; i++ {
if i > 5 { continue ←跳过循环中全部的代码
println(i) range
保留字 range 可用于循环。它能够在 slice、array、string、map 和 channel。 range 是个迭代器,当被调用的时候。从它循环的内容中返回一个键 值对。基于不同的内容,range 返回不同的东西。 当对 slice 或者 array 做循环时。range 返回序号作为键,这个序号相应的内容作 为值。考虑这个代码:
list := []string{"a", "b", "c", "d", "e", "f"}
. . 0
for k, v := range list {
. . 1
//对k 和v做想做的事情
. . 2
}
我的Go语言学习之旅三:Go语言中的for循环的更多相关文章
- PHP语言学习之php-fpm 三种运行模式
本文主要向大家介绍了PHP语言学习之php-fpm 三种运行模式,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. php-fpm配置 配置文件:php-fpm.conf 开启慢日志功能的 ...
- Hadoop学习之旅三:MapReduce
MapReduce编程模型 在Google的一篇重要的论文MapReduce: Simplified Data Processing on Large Clusters中提到,Google公司有大量的 ...
- 滴滴Booster移动APP质量优化框架 学习之旅 三
推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) 滴滴Booster移动App质量优化框架-学习之旅 二对重复资源 ...
- Go语言学习笔记(三)
一.浮点数 1.概述 浮点类型用于存储带有小数点的数字 一个整数数值可以赋值给浮点类型但是一个整型变量不可以赋值给浮点类型 浮点数进行运算的结果是浮点数 Go语言中浮点类型有两个 float32 fl ...
- Go语言学习笔记(三)数组 & 切片 & map
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 数组 Arrays 数组是同一种数据类型的固定长度的序列. 数组是值类型,因此改变副本的值,不会改变本身的值: 当 ...
- 我的Go语言学习之旅二:入门初体验 Hello World
好吧,全部的程序猿们都已经习惯了.学习不论什么一门语言,我们都会以Hello World实例開始我们的学习,我也不例外.先来一个简单的样例 打开编辑器 (能够用记事本,我已经习惯 Notepad++了 ...
- [学习总结] python语言学习总结 (三)
函数闭包 定义 延伸了作用域的函数(能访问定义体之外定义的非全局变量 作用 共享变量的时候避免使用了不安全的全局变量 允许将函数与某些数据关联起来,类似于简化版面向对象编程 相同代码每次生成的闭包,其 ...
- go语言学习之路三:切片
前面讲了变量的有关知识,这里对于其他的数据类型就不多作介绍,(和C差不多),因此重点来讨论下切片. 一.切片是引用类型,这里要稍微介绍两个概念:值类型,构造类型和引用类型 1.值类型:是一种由类型的实 ...
- Spring学习之旅(三)--装配Bean
装配 Bean 的方式 在 XML 中进行显式配置 在 Java 中进行显式配置 隐式的 Bean 发现机制和自动装配 Spring 提供了以上三种方式进行 Bean 的配置,可以根据自己的需求选择一 ...
随机推荐
- 使用cocos2dx 3.2和cocosstudio屏幕适配总结----相对布局
屏幕适配的文章太多了,基本上都是理论性的东西.大家明确了机制就知道了.没有完美的适配方案,除非你们的美工愿意折腾. 常规策略: 今天研究了一下屏幕适配导致的缩放和展示不全的问题(黑边的方案直接淘汰). ...
- 与TCP/IP协议的初次见面(一)
与TCP/IP协议的初次见面(一) 前言 今下午刚才女朋友那边回来,唉,算是情人节去找她吧,穷屌丝住不起好酒店,住的打折酒店,只是女朋友来姨妈了,万幸啊,牙还疼得不行,这几天光照应她了,没空写博客了. ...
- JAVA多态学习1
多态–概念 所谓多态.就是指一个引用(类型)在不同情况下的多种状态. 也能够理解成:多态是指通过指向父类的指针,来调用在不同子类中实现的方法. 实现多态有两种方式:1.继承.2.接口 这一次我们先来演 ...
- POJ 2533 Longest Ordered Subsequence(dp LIS)
Language: Default Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submis ...
- 我的vim配置记录
一 总体介绍 配置路径,/etc/vim/vimrc,这个是系统的vim配置,假设一台PC多个用户使用,每一个用户的习惯不同的话,能够使用不同的配置.在用户文件夹下新建一个.vimrc的文件就能够了. ...
- javascript 将时间戳格式化
<script>function getLocalTime(nS) { return new Date(parseInt(nS) * 1000).toLocaleString().repl ...
- button按钮下边框有立体效果样式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- dp之完全背包 hdu--2159一维数组做法
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int ma ...
- 【Uva 10163】Storage Keepers
[Link]: [Description] 你有n(n≤100)个相同的仓库.有m(m≤30)个人应聘守卫,第i个应聘者的能力值 为Pi(1≤Pi≤1000).每个仓库只能有一个守卫,但一个守卫可以看 ...
- 海康威视抓拍一体机--- C#源码
https://pan.baidu.com/s/1kV4AjRp 需要的联系qq:694666781