Go语言入门篇-复合数据类型
主要讨论四种类型——数组、slice、map和结构体
数组和结构体聚合类型 --数组和结构体都是有固定内存大小的数据结构
--数组:由同构的元素组成——每个数组元素都是完全相同的类型
--结构体:由异构的元素组成
slice和map则是动态的数据结构,它们将根据需要动态增长。
一。数组
package main import (
"fmt"
) func main() {
var a []int //声明数组,默认数组每个元素都被初始化为0值
fmt.Println(a[]) //打印a数组的第1个元素值 0
fmt.Println(a[len(a)-]) //打印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
//
} fmt.Println("====================================") var p []int=[]int{,,} //初始化数组,值为1,2,3
p1:=[...]int{,,} //同上述p等价,数组长度位置"...",代表数组长度根据初始化值个数计算
fmt.Printf("%T\n",p1) //[3]int
var q []int=[]int{,} //初始化数组,值为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 ¥"
}
Go语言入门篇-复合数据类型的更多相关文章
- Go语言入门篇-基本数据类型
一.程序实体与关键字 任何Go语言源码文件都由若干个程序实体组成的.在Go语言中,变量.常量.函数.结构体和接口被统称为“程序实体”,而它们的名字被统称为“标识符”. 标识符可以是任何Unicode编 ...
- Go语言入门篇-高级数据类型
一.数组类型 二.切片类型 切片的更多操作方法 示例: 三.字典类型 四.通道类型 示例: 通道的更多种类 示例: 五.函数 示例: 六.结构体和方法 示例: 七.接口 八.指针 示例: mooc
- Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)
Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Py ...
- 编程C语言进阶篇——自定义数据类型:共同体
什么是"自定义数据类型"?顾名思义,就是用户可以随时在程序中自行定义新的数据类型.自定义数据类型时需要设置数据类型的名称及其成员.数据类型成员各属性的设置方法等同于变量设置时相应属 ...
- C语言入门:04.数据类型、常量、变量
一.数据 1.什么是数据 生活中时时刻刻都在跟数据打交道,比如体重数据.血压数据.股价数据等.在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据.图片数据.视频数据,还有聊QQ时产生的文字数 ...
- Go语言入门篇-gRPC基于golang & java简单实现
一.什么是RPC 1.简介: RPC:Remote Procedure Call,远程过程调用.简单来说就是两个进程之间的数据交互. 正常服务端的接口服务是提供给用户端(在Web开发中就是浏览器)或者 ...
- Go语言入门篇-网络经验
Go语言学习手册 golang*看云 golang圣经 wuYinIO 1.go语言开发中的坑 go新手容易犯的三个致命错误 Golang 需要避免踩的 50 个坑 2.go语言数据类型 map ...
- 优雅的go语言--入门篇
1.特点 1.静态类型,编译型的开源语言 2.脚本华的语法,支持多种编程范式(函数式&面向对象) 3.原生,给力的并发编程的支持 2.优势 1.脚本化的语法 2.静态类型+编译型,程序运行速度 ...
- 明解C语言 入门篇 第五章答案
练习5-1 /* 依次把1.2.3.4.5 赋值给数组的每个元素并显示(使用for语句) */ #include <stdio.h> int main(void) { int i; ]; ...
随机推荐
- 如何在Linux下安装JDK1.8
本文会详细介绍如何在Linux下安装JDK1.8 首先要设置虚拟机的IP地址,不知道如何设置的话可以 翻看我的前一篇博客 http://www.cnblogs.com/xiaoxiaoSMILE/ ...
- LB_GETCURSEL和LB_GETTEXT的使用
case IDC_LIST1: { switch (HIWORD(wParam)) { case LBN_DBLCLK: { HWND hwndList = GetDlgItem(hDlg, IDC_ ...
- 【30分钟学完】canvas动画|游戏基础(extra1-1):美图我也行
前言 本文是接续系列教程的extra1,主要是介绍颜色系统在canvas中的应用. 本来是与extra1一起成文的,因为segmentfault莫名其妙的字数限制bug只能分割放送了. canvas操 ...
- Java中CharSet字符集
java.nio.charset包中提供了Charset类,它继承了Comparable接口:还有CharsetDecoder.CharsetEncoder编码和解码的类,它们都是继承Object类. ...
- mysql8.0.16二进制安装
mysql8.0.16二进制安装 环境简介操作系统:Centos 6.10 64位 目前版本:8.0.16 MySQL Community Server 二进制 安装目录:/data/mysql/my ...
- Python 3标准库课件第一章
第一章文本1.1 string:文本常量和模板1.2 textwrap:格式化文本段落1.3 re:正则表达式1.4 difflib:比较序列str类,string.Templatetextwrap ...
- 【leetcode】Exchange Seats
Mary is a teacher in a middle school and she has a table seat storing students' names and their corr ...
- 【curl】cookie的分隔符
cookie是以分号作为分隔符的. ex: curl --silent -H "Host: xxx.com" "172.172.178.9:80/item/comm?pi ...
- fiddler界面工具栏介绍(二)
工具栏介绍 1.Winconfig,Windows 使用了一种称为“AppContainer”的隔离技术,使得一些进程的流量无法捕获,打开WinConfig后可设置解除隔离. 2.气泡按钮,给sess ...
- Python基础(四)
一.迭代器 让不同数据类型具有相同的遍历方式:list.dict.str.tuple.set 1.特点: ①省内存 ②只能向前,不能反复 ③惰性机制 2.可迭代对象 ###dir() 查看 ...