GO基本数据结构练习:数组,切片,映射

按《GO IN ACTION》的书上进行。

应该是第二次了哦~~

package main

import (
	"fmt"
)

func main() {
	array := [5]*int{0: new(int), 3: new(int)}

	*array[3] = 50
	/*
		for k, v := range array {
			fmt.Println(*array[k], k, v)
		}
	*/
	fmt.Println(*array[3])

	var array1 [3]*string
	array2 := [3]*string{new(string), new(string), new(string)}
	*array2[0] = "Red"
	*array2[1] = "Blue"
	*array2[2] = "Green"

	array1 = array2

	*array1[1] = "Black"
	fmt.Println(array1)
	fmt.Println(array2)

	for k, v := range array1 {
		fmt.Println(*array1[k], k, *v)
	}

	for k, v := range array2 {
		fmt.Println(*array2[k], k, *v)
	}

	slice := []int{10, 20, 30, 40, 50}
	newSlice := slice[1:3:3]
	newSlice[1] = 35
	newSlice = append(newSlice, 60)
	newSlice = append(newSlice, 70)
	newSlice = append(newSlice, 80)
	newSlice = append(newSlice, 90)

	slice = append(slice, 60)
	slice = append(slice, 70)
	slice = append(slice, 80)
	newSlice = append(newSlice, 100)

	slice1 := []int{10, 20, 30, 40}
	newSlice1 := append(slice1, 50)

	slice1[2] = 200
	newSlice1[2] = 2000

	fmt.Println(slice)
	fmt.Println(newSlice)

	fmt.Println(slice1)
	fmt.Println(newSlice1)

	for index, value := range slice {
		fmt.Printf("index: %d Value: %d\n", index, value)
	}

	for index := 2; index < len(slice); index++ {
		fmt.Printf("Index: %d Value: %d\n", index, slice[index])
	}

	source := []string{"Apple", "Orange", "Plum", "Banana", "Grape"}
	newSource := source[2:3:4]

	fmt.Println(source)
	fmt.Println(newSource)

	s1 := []int{1, 2}
	s2 := []int{3, 4}

	fmt.Printf("%v\n", append(s1, s2...))

	colors := map[string]string{
		"AliceBlue":   "#f0f8ff",
		"Coral":       "#ff7F50",
		"DarkGray":    "#a9a9a9",
		"ForestGreen": "#228b22",
	}

	delete(colors, "Coral")

	for key, value := range colors {
		fmt.Printf("Key: %s Value: %s\n", key, value)
	}

}

  

时间: 2024-11-02 20:51:17

GO基本数据结构练习:数组,切片,映射的相关文章

窥探Swift之数组安全索引与数组切片

在Swift中的数组和字典中下标是非常常见的,数组可以通过索引下标进行元素的查询,字典可以通过键下标来获取相应的值.在使用数组时,一个常见的致命错误就是数组越界.如果在你的应用程序中数组越界了,那么对不起,如果由着程序的性子的话是会崩溃的.为了防止崩溃呢,我们会对集合做一些安全的处理.比如对数组进行扩展,从而对数组的索引进行安全检查,保证数组的index在正常范围内.在Objective-C中也是经常对数组,字典等做一些处理操作. 今天的博客的主要内容是先对Objective-C中常用集合的安全

求助数据结构-数据结构中数组元素存储地址的计算

问题描述 数据结构中数组元素存储地址的计算 数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从兽地址开始连续存放的存储器内,该数组按行存放,元素A[8][5]的起始地址为() A.Sa+141 B.SA+144 C.SA+222 D.SA+225 答案是C啊,求大神说一下怎么算,要具体过程,谢谢了 解决方案 即使A[8][5]前面有多少个元素, 行下标i从1到8,列下标j从1到10,所有A[8][5]之前共有7*10+4(74)个元素, 每个元素的长度为3个字节,故共有

Java数据结构---基于数组的表

数据|数据结构|数组 我没看过 其他语言版的数据结构,但觉得java的实现方法很巧妙--用类和对象来实现.基于数组的表,思想很简单就是定义一个类用来存储一组数据,我定义的是ArrayListClass类,在类中定义用来操作数组的方法.其实就是 这么简单,但具体操作起来就会遇到很多麻烦了!  我们这个ArrayListClass类中首先应该包括一个数组型的域list,用来存放数据,这样放在同一数组中数据之间就产生了位置上的联系,使对数据的操作便的简单.然而这个数组到底是什么数据类型的,我们期望这个

Linux内核里的数据结构——位数组

Linux 内核中的位数组和位操作 除了不同的基于链式和树的数据结构以外,Linux 内核也为位数组(或称为位图(bitmap))提供了 API.位数组在 Linux 内核里被广泛使用,并且在以下的源代码文件中包含了与这样的结构搭配使用的通用 API: lib/bitmap.c include/linux/bitmap.h 除了这两个文件之外,还有体系结构特定的头文件,它们为特定的体系结构提供优化的位操作.我们将探讨 x86_64 体系结构,因此在我们的例子里,它会是 arch/x86/incl

Linux 内核里的数据结构——位数组

Linux 内核中的位数组和位操作 除了不同的基于链式和树的数据结构以外,Linux 内核也为位数组(或称为位图bitmap)提供了 API.位数组在 Linux 内核里被广泛使用,并且在以下的源代码文件中包含了与这样的结构搭配使用的通用 API: lib/bitmap.c include/linux/bitmap.h 除了这两个文件之外,还有体系结构特定的头文件,它们为特定的体系结构提供优化的位操作.我们将探讨x86_64 体系结构,因此在我们的例子里,它会是 arch/x86/include

数据结构之数组

一.数组的基本概念 数组可以看成是多个相同类型数据组合,对这些数据的统一管理. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量. 数组的元素可以是任何数据类型,包括基本类型和引用类型. C和C++中的数组都可以分配在栈上面,而JAVA中的数组是只能分配在堆上面的,因为JAVA中的数组是引用类型. 二.一维数组 一维数组的声明方式有2种: 格式一:数组元素类型  数组名[ ];  即type var[ ]; 格式二:数组元素类型[ ] 数组名; 即type[ ]

数据结构-用数组或链表依次存几个数,要求每次存之前判断要存的数是否和之前的数重复,如果重复就把原先的数删掉。

问题描述 用数组或链表依次存几个数,要求每次存之前判断要存的数是否和之前的数重复,如果重复就把原先的数删掉. 原先的数删掉之后要存的数也不要在存进数组或链表中了.依次存入12,2,6,15,6,2,15,8.最后遍历出来按升序排列.答案应该是8,12 解决方案 int[] data = { 12, 2, 6, 15, 6, 2, 15, 8 }; int[] result = data.GroupBy(x => x).Where(x => x.Count() == 1).Select(x =&

Javascript中的Array(数组) 、{}(映射) 与JSON解析

做网页总会使用javascript,使用javascript总会使用JSON.最近用到一下,就写写. 下面是总结: 1.将javascript中的Array和{}转化为json字符串可以使用json2.js,源码地址https://github.com/douglascrockford/JSON-js. 2.将json字符串转为javascript对象,可以使用javascript自带的eval函数. 3.javascript中可以使用typeof查看变量的类型. 4.要访问json字段,必须是

Java千百问_06数据结构(011)_java中的数组是什么

1.什么是数组 Java提供了一个用于存储相同类型的元素的,固定大小的连续集合数据结构:数组. 数组是用于存储数据的集合,储存相同类型数据的集合. 与单个变量相比(如number0, number1 - number99),数组变量需要使用下标索引来确定数组中某个数据的顺序(如numbers[0], numbers1 - numbers[99] ).  了解变量看这里:局部变量.类变量.实例变量有什么区别2 2.如何声明数组 一个程序要使用数组,必须声明一个变量来引用数组,而且需要指定数组变量的