您现在的位置是:首页 > 技术笔记 > Go语言Go语言

数据格式

冰山2019-02-02【Go语言】人已围观

简介1.数组
1.1数组定义
1.2数组赋值
1.3数组初始化
1.4 数组冒泡排序
1.5数组作为函数参数
2.切片
2.1切片定义
2.2切片定义方式
2.3切片截取
2.4 copy函数的使用
2.5切片作为函数参数
3.字符串处理
4.字符串转化
5.Map
5.1Map初始化
5.2 打印输出
6.结构体
6.1顺序初始化
6.2结构体比较与赋值
6.3结构体数组
6.4结构体作为函数参数
7.指针
7.1指针变量
7.2new函数
7.3指针做函数

1.数组


所谓的数组:是指一系列同一类型数据的集合。
 

1.1数组定义

 
var a [10]int

 数组定义也是通过var 关键字,后面是数组的名字a,长度是10,类型是整型。表示:数组a能够存储10个整型数字。也就是说,数组a的长度是10。
当定义完成数组a后,就在内存中开辟了10个连续的存储空间,每个数据都存储在相应的空间内,数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数组的长度。
 

1.2数组赋值


var a[10] int   表示的范围是a[0],a[1],a[2].......,a[9]
 
func main() {
   var a [10]int
   a[0]=1
   a[1]=1
   a[2]=1
   a[3]=1
   a[4]=1
   a[5]=1
   a[6]=1
   a[7]=1
   a[8]=1
   a[9]=1
fmt.Println(a)
}

输出结果
[1 1 1 1 1 1 1 1 1 1]

 

1.3数组初始化

 
func main() {
   var a [10]int=[10]int{1,3,4,5,6,7,8,9,0}
    fmt.Println(a)
 

1.4 数组冒泡排序


如何对数组中存储的数据,按照从大到小,或者从小到大进行排序?可以使用冒泡排序。

分析过程:
 
func main() {
 
  arr:=[...]int{1,3,5,6,7,0,8,-1,-5,-6,-7,-8,0}
  for i:=0;i<len(arr)-1;i++{
     for j:=0;j<len(arr)-1-i;j++{
      if arr[j]>arr[j+1]{
         arr[j],arr[j+1]=arr[j+1],arr[j]
      }
     }
  }
fmt.Println(arr)
}

输出结果
[-8 -7 -6 -5 -1 0 0 1 3 5 6 7 8]

1.5数组作为函数参数


func test(a [5]int){
   a[0]=1111
   fmt.Println(a)
}
func main() {
 
   arr:=[5]int{1,3,5,6,4}
   test(arr)
   fmt.Println(arr)
}

输出结果

[1111 3 5 6 4]


1.6Demo演示:


用方法来实现:有一个字符串数组: { "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" },请输出最长的字符串。
 

package main
 
import "fmt"
func test(a [5]string) string{
   var ma string
   ma=a[0]
   for i:=0;i<len(a);i++{
      if len(a[i])>len(ma){
         ma=a[i]
      }
   }
 return ma
}
func main() {
 
   arr:=[5]string{ "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特"}
   b:=test(arr)
   fmt.Println(b)
}

输出结果
科比布莱恩特
 

2.切片

 

2.1切片定义


切片:切片与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大,所以可以将切片理解成“动态数组”。
 

2.2切片定义方式

 
func main() {
  s:=[]int{1,3,5,6,8,3,5,7}
  
  fmt.Println(s)
}

输出结果
[1 3 5 6 8 3 5 7]

 
 append( )函数:第一个参数表示向哪个切片追加数据,后面表示具体追加的数据。
 

func main() {
  s:=[]int{}
  s=append(s,3,5,7)
  fmt.Println(s)
}

输出结果
[3 5 7]


通过make函数

 
func main() {
  s:=make([]int,3,5)
  fmt.Println(s)
}

输出结果
[0 0 0]


借助make函数, 格式 make(切片类型, 长度, 容量)

什么是切片的长度与容量?

长度是已经初始化的空间(以上切片s初始空间默认值都是0)。容量是已经开辟的空间,包括已经初始化的空间和空闲的空间。
 

2.3切片截取


func main() {
 s:=[]int{10,20,30,0,0}
 slice:=s[0:3:5]
 fmt.Println(slice)
}

输出结果
[10 20 30]

 
s[0:3:5]是什么意思呢?
我们可以使用s[low:high:max]来表示

 1/5    1 2 3 4 5 下一页 尾页

  • 微信扫一扫~
  • 支付宝扫一扫~

很赞哦! ()

上一篇:函数

下一篇:面向对象

文章评论

本站推荐