go语言中range用法
本文实例讲述了go语言中range用法。分享给大家供大家参考。具体分析如下:
range是go语言系统定义的一个函数。
函数的含义是在一个数组中遍历每一个值,返回该值的下标值和此处的实际值。
假如说a[0]=10,则遍历到a[0]的时候返回值为0,10两个值。
下面是一个例子:这个例子是求一个数组里面的平均值。
package main
import (
"fmt"
)
func main() {
sum := 0.0
var avg float64
xs := []float64{1, 2, 3, 4, 5, 6}
switch len(xs) {
case 0:
avg = 0
default:
for _, v := range xs {//下划线表示那个值舍去,即舍去下标索引
sum += v
}
avg = sum / float64(len(xs))
}
fmt.Println(avg)
}
希望本文所述对大家的Go语言程序设计有所帮助。
相关推荐
-
Go语言命令行操作命令详细介绍
Go 命令 Go语言自带有一套完整的命令操作工具,你可以通过在命令行中执行go来查看它们: 图1.3 Go命令显示详细的信息 这些命令对于我们平时编写的代码非常有用,接下来就让我们了解一些常用的命令. go build 这个命令主要用于测试编译.在包的编译过程中,若有必要,会同时编译与之相关联的包. 1.如果是普通包,就像我们在1.2节中编写的mymath包那样,当你执行go build之后,它不会产生任何文件.如果你需要在$GOPATH/pkg下生成相应的文件,那就得执行go install了
-
Go语言中的range用法实例分析
本文实例讲述了Go语言中的range用法.分享给大家供大家参考.具体如下: for 循环的 range 格式可以对 slice 或者 map 进行迭代循环. 复制代码 代码如下: package main import "fmt" var pow = []int{1, 2, 4, 8, 16, 32, 64, 128} func main() { for i, v := range pow { fmt.Printf("2**%d = %d\n"
-
Go语言中的Array、Slice、Map和Set使用详解
Array(数组) 内部机制 在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型,元素可以通过唯一的索引值访问,从 0 开始. 数组是很有价值的数据结构,因为它的内存分配是连续的,内存连续意味着可是让它在 CPU 缓存中待更久,所以迭代数组和移动元素都会非常迅速. 数组声明和初始化 通过指定数据类型和元素个数(数组长度)来声明数组. 复制代码 代码如下: // 声明一个长度为5的整数数组 var array [5]int
-
浅析Go语言中的Range关键字
前言 相信用过Range的朋友们都知道,Go语言中的range关键字使用起来非常的方便,它允许你遍历某个slice或者map,并通过两个参数(index和value),分别获取到slice或者map中某个元素所在的index以及其值. 比如像这样的用法: for index, value := range mySlice { fmt.Println("index: " + index) fmt.Println("value: " + value) } 上面的例子足够
-
总结Go语言中defer的使用和注意要点
前言 defer是golang语言中的关键字,用于资源的释放,会在函数返回之前进行调用. 一般采用如下模式: f,err := os.Open(filename) if err != nil { panic(err) } defer f.Close() 如果有多个defer表达式,调用顺序类似于栈,越后面的defer表达式越先被调用. 延时调用函数的语法如下: defer func_name(param-list) 当一个函数调用前有关键字 defer 时, 那么这个函数的执行会推迟到包含这个
-
深入理解Go语言中的数组和切片
一.类型 数组是值类型,将一个数组赋值给另一个数组时,传递的是一份拷贝. 切片是引用类型,切片包装的数组称为该切片的底层数组. 我们来看一段代码 //a是一个数组,注意数组是一个固定长度的,初始化时候必须要指定长度,不指定长度的话就是切片了 a := [3]int{1, 2, 3} //b是数组,是a的一份拷贝 b := a //c是切片,是引用类型,底层数组是a c := a[:] for i := 0; i < len(a); i++ { a[i] = a[i] + 1 } //改变a的值后
-
Go语言入门教程之Arrays、Slices、Maps、Range操作简明总结
Arrays:数组 在go语言中数组array是一组特定长度的有序的元素集合. 复制代码 代码如下: package main import "fmt" func main() { //这里我们创建了一个长度为5的数组. 这一组数组的初值是zero-valued.整型就是0 var a [5]int fmt.Println("emp:", a) //可以通过array[index] = value语法赋值 a[4] = 100 fmt
-
GO语言并发编程之互斥锁、读写锁详解
在本节,我们对Go语言所提供的与锁有关的API进行说明.这包括了互斥锁和读写锁.我们在第6章描述过互斥锁,但却没有提到过读写锁.这两种锁对于传统的并发程序来说都是非常常用和重要的. 一.互斥锁 互斥锁是传统的并发程序对共享资源进行访问控制的主要手段.它由标准库代码包sync中的Mutex结构体类型代表.sync.Mutex类型(确切地说,是*sync.Mutex类型)只有两个公开方法--Lock和Unlock.顾名思义,前者被用于锁定当前的互斥量,而后者则被用来对当前的互斥量进行解锁. 类型sy
-
Go语言运行环境安装详细教程
Go的三种安装方式 Go有多种安装方式,你可以选择自己喜欢的.这里我们介绍三种最常见的安装方式: 1.Go源码安装:这是一种标准的软件安装方式.对于经常使用Unix类系统的用户,尤其对于开发者来说,从源码安装是最方便而熟悉的. 2.Go标准包安装:Go提供了方便的安装包,支持Windows.Linux.Mac等系统.这种方式适合初学者,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了. 3.第三方工具安装:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get.M
-
Go语言实现简单的一个静态WEB服务器
学习Go语言的一些感受,不一定准确. 假如发生战争,JAVA一般都是充当航母战斗群的角色. 一旦出动,就是护卫舰.巡洋舰.航母舰载机.预警机.电子战飞机.潜艇等等 浩浩荡荡,杀将过去. (JVM,数十个JAR包,Tomcat中间件,SSH框架,各种配置文件...天生就是重量级的,专为大规模作战) 而GO语言更像F35战斗轰炸机 单枪匹马,悄无声息,投下炸弹然后走人. 专属轰炸机,空战也会一点点. 实在搞不定,就叫它大哥F22. (GO是编译型语言,不需要依赖,不需要虚拟机,可以调用C代码并且它足
随机推荐
- 学习perl的unless控制结构
- .NET Visual Studio 代码性能分析工具
- Reactor反应器的实现方法详解
- VBS创建正则表达式对象的两种方法
- python出现"IndentationError: unexpected indent"错误解决办法
- javascript 数据结构的题
- js HTML5 canvas绘制图片的方法
- Python中动态创建类实例的方法
- Android自定义实现循环滚轮控件WheelView
- javascript里使用php代码实例
- 利用 bat 文件制作 HOSTS 快速切换器
- SQL Server 2000 清理日志精品图文教程
- Javascript中arguments对象的详解与使用方法
- 写了10年的Javascript也未必全了解的连续赋值运算
- Android编程滑动效果之倒影效果实现方法(附demo源码下载)
- php编程中echo用逗号和用点号连接的区别
- C#实现判断字符串中是否包含中文的方法
- 基于mysql的bbs设计(三)
- Android APP瘦身(清除工程中没用到的资源)详解
- 也谈 PHP 和 MYSQL