Go语言入门篇-复合数据类型

复合数据类型

主要讨论四种类型——数组、slice、map和结构体

数组和结构体聚合类型   --数组和结构体都是有固定内存大小的数据结构

  --数组:由同构的元素组成——每个数组元素都是完全相同的类型

  --结构体:由异构的元素组成

slice和map则是动态的数据结构,它们将根据需要动态增长。

一。数组

package main

import (
    "fmt"
)

func main() {
    var a [3]int          //声明数组,默认数组每个元素都被初始化为0值
    fmt.Println(a[0])     //打印a数组的第1个元素值  0
    fmt.Println(a[len(a)-1]) //打印a数组的倒数第1个值  0    

    fmt.Println("====================================")    

    for i,v:=range a{    //range a:将a数组的索引和值分别赋值给i和v

        fmt.Printf("%d %d\n",i,v)
        //打印值 0 0
        //    1 0
        //    2 0
    }

    fmt.Println("====================================")

    for _,v:=range a{  //range a:将a的索引值赋值给_代表不关心索引值,将a数组值循环赋值给v
        fmt.Printf("%d\n",v)
        //打印值    0
        //    0
        //    0
    }

    fmt.Println("====================================")

    var p [3]int=[3]int{1,2,3}  //初始化数组,值为1,2,3
    p1:=[...]int{1,2,3}  //同上述p等价,数组长度位置"...",代表数组长度根据初始化值个数计算
    fmt.Printf("%T\n",p1)   //[3]int
    var q [3]int=[3]int{1,2} //初始化数组,值为1,2,0
}
package main

import (
    "fmt"
)

func main() {
    type Currency int

    const (
        USD Currency = iota // 美元
        EUR                 // 欧元
        GBP                 // 英镑
        RMB                 // 人民币
    )

    symbol := [...]string{USD: "$", EUR: "€", GBP: "£", RMB: "¥"}

    fmt.Println(RMB, symbol[RMB]) // "3 ¥"
}

原文地址:https://www.cnblogs.com/kaixinyufeng/p/9552164.html

时间: 2024-12-31 03:31:32

Go语言入门篇-复合数据类型的相关文章

Go语言入门篇-基本数据类型

一.程序实体与关键字 任何Go语言源码文件都由若干个程序实体组成的.在Go语言中,变量.常量.函数.结构体和接口被统称为"程序实体",而它们的名字被统称为"标识符". 标识符可以是任何Unicode编码可以表示的字母字符.数字以及下划线"_".不过,首字母不能是数字或下划线.  注意: 在Go语言中,我们对程序实体的访问权限控制只能通过它们的名字来实现. 名字首字母为大写的程序实体可以被任何代码包中的代码访问到. 名字首字母为小写的程序实体则只能

Go语言入门篇-高级数据类型

一.数组类型 二.切片类型 切片的更多操作方法 示例: 三.字典类型 四.通道类型 示例: 通道的更多种类 示例: 五.函数 mooc 原文地址:https://www.cnblogs.com/kaixinyufeng/p/9574345.html

C语言入门:04.数据类型、常量、变量

一.数据 1.什么是数据 生活中时时刻刻都在跟数据打交道,比如体重数据.血压数据.股价数据等.在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据.图片数据.视频数据,还有聊QQ时产生的文字数据.用迅雷下载的文件数据等. 2.数据的分类 计算机中存储的数据可以分为两种:静态数据和动态数据. (1)静态数据: ●概念:静态数据是指一些永久性的数据,一般存储在硬盘中.硬盘的存储空间一般都比较大,现在普通计算机的硬盘都有500G左右,因此硬盘中可以存放一些比较大的文件. ●存储的时长:计算机关

黑马程序员-ios学习-C语言入门篇-非MAC下编译C的环境,算法的理解-01

很高兴写第一篇技术博客!2011年以后就没在写过博客这东东了!好了,废话扯两句!以下正文 ios开发课程有c语言,那么,我们当前没有购买mac电脑,那我们出了装虚拟机,就用windows跟linux来练习c语言吧,可以缓冲几天,可以做基础测试的时候,可以用到! vc++6.0安装,百度搜索,vc++6.0,然后下载下来,安装,就这么简单!我在我虚拟机里面安装安装一下吧! 点击setup.exe,弹出一个程序兼容的提示框,别理会,点击运行,反正遇到下一步,就点,遇到继续就点,就好了,安装软件简单,

Go语言入门篇-gRPC基于golang & java简单实现

一.什么是RPC 1.简介: RPC:Remote Procedure Call,远程过程调用.简单来说就是两个进程之间的数据交互. 正常服务端的接口服务是提供给用户端(在Web开发中就是浏览器)或者自身调用的,也就是本地过程调用. 和本地过程调用相对的就是:假如两个服务端不在一个进程内怎么进行数据交互?使用RPC. 尤其是现在微服务的大量实践,服务与服务之间的调用不可避免,RPC更显得尤为重要. 2.原理: 计算机的世界中不管使用哪种技术,核心都是对数据的操作.RPC不过是将数据的操作垮了一个

Go语言入门篇-命令 与 语法

一.命令基础 1. go run : 用于运行命令源码文件(如:go run helloworld.go) 只能接受一个命令源码文件以及若干个库源码文件作为文件参数 其内部操作步骤: (1)先编译源码文件再运行 先会编译作为参数的源码文件->编译结果放入临时文件夹中->运行编译的结果. 编译结果包括:命令源码文件(.go)和编译后生成的可执行文件和编译后所生成的归档文件(.a) 示例: go run helloworld.go -p ~goc2p/src/helper/ //打印目录 go r

C++学习(八)入门篇——复合类型

数组(需要声明以下三点): (1)存储在每个元素中值的类型 (2)数组名 (3)数组中的元素数 声明数组的通用格式如下: typeName arrayName[arraySize];arraySize不能是变量; float loans[20]表示loans数组是使用float类型创建的,C++数组从0开始编号. 编译器不会检查使用的下标是否有效,如果将一个值赋给不存在的元素months[101]编译器不会指出错误,但会引发问题,破坏数据或代码或使程序异常终止. 程序清单4.1 arrayone

Go语言入门篇-基本流程控制

一.if语句 二.switch语句 三.for语句 四.select语句 原文地址:https://www.cnblogs.com/kaixinyufeng/p/9614236.html

明解C语言 入门篇 第二章答案

练习2-1 1 #include <stdio.h> 2 3 int main() { 4 int x; 5 int y; 6 int percent; 7 8 puts("请输入两个整数"); 9 printf("整数x:"); 10 scanf("%d", &x); 11 printf("整数y:"); 12 scanf("%d", &y); 13 percent = (x